MySQL:要水平分表 吗?
Posted 明天会更好new
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL:要水平分表 吗?相关的知识,希望对你有一定的参考价值。
mysql(2):要水平分表 吗?
前言
昨天困扰了我一阵,要做一个背单词app,其中单词表有10w+数据,对于我这个每见识的可是兴奋了一会,想要不要水平分表啊这可是“大数据量啊”。
答案当然是不用,但是其他表确实在日后需要水平分表!
什么情况下水平分表
水平分表就是一个表装的数据太多了,查起来非常慢,即使是弄好所以还是非常慢!那就水平分表吧!
但是注意水平分表不要轻易的分!可以算是重型武器了,别干杀鸡用牛刀的事!数据量在1000w以上再考虑水平分表!!!
而且一定是索引啥的都不管用了再分表,你问为啥,那你说说分表之后要怎么查询!?
所以说单词表才10w,完全不用分表,而且我查询试了一下很快,所以不用分表,但是有别的表需要分!用户背单词记录表!如果有1000个疯狂背单词的用户,背单词超过1w,那这个表直接爆了,挤压别的用户生成空间(玩笑话),而且就是读写压力也大,这个还没想好!
总之如果软件真正上市1w用户每人1000个单词,这个表也是要达到千万级别了,但是可以使用分区来做。
Mysql分表后怎么查询效率高? - 老雕虫的回答 - 知乎
分表(分区)之后怎么查询
要问怎么查先说怎么分!这个要按业务来,一般的如果是自增主键按主键数量分,比如没1000w一个表,还有按时间分、hash。
就拿按数量分来说,分了之后查询按动态表名,但是这个表是中间表,前端传过来的肯定不是这个表记录的id,所以要想查要么部分表,分区,mysql有内置函数,很方便,要么在来个映射表,要么就是hash!hash其实主要是解决在哪里的问题。
总结
前半段很清楚就是分表别随便用,但是后半段分了之后怎么查这确实是难题。以我目前的认知就是要不还是使用分区吧!这个好像方便一点,而且这个要提前确定下来,要是以后确定了分表,那现在的sql就要用动态的,要不以后还得改。
以上是关于MySQL:要水平分表 吗?的主要内容,如果未能解决你的问题,请参考以下文章