MySQL:要水平分表 吗?

Posted 明天会更好new

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL:要水平分表 吗?相关的知识,希望对你有一定的参考价值。

mysql(2):要水平分表 吗?

前言

昨天困扰了我一阵,要做一个背单词app,其中单词表有10w+数据,对于我这个每见识的可是兴奋了一会,想要不要水平分表啊这可是“大数据量啊”。

答案当然是不用,但是其他表确实在日后需要水平分表!

什么情况下水平分表

水平分表就是一个表装的数据太多了,查起来非常慢,即使是弄好所以还是非常慢!那就水平分表吧!

但是注意水平分表不要轻易的分!可以算是重型武器了,别干杀鸡用牛刀的事!数据量在1000w以上再考虑水平分表!!!而且一定是索引啥的都不管用了再分表,你问为啥,那你说说分表之后要怎么查询!?

所以说单词表才10w,完全不用分表,而且我查询试了一下很快,所以不用分表,但是有别的表需要分!用户背单词记录表!如果有1000个疯狂背单词的用户,背单词超过1w,那这个表直接爆了,挤压别的用户生成空间(玩笑话),而且就是读写压力也大,这个还没想好!

总之如果软件真正上市1w用户每人1000个单词,这个表也是要达到千万级别了,但是可以使用分区来做。

Mysql分表后怎么查询效率高? - 老雕虫的回答 - 知乎

分表(分区)之后怎么查询

要问怎么查先说怎么分!这个要按业务来,一般的如果是自增主键按主键数量分,比如没1000w一个表,还有按时间分、hash。

就拿按数量分来说,分了之后查询按动态表名,但是这个表是中间表,前端传过来的肯定不是这个表记录的id,所以要想查要么部分表,分区,mysql有内置函数,很方便,要么在来个映射表,要么就是hash!hash其实主要是解决在哪里的问题。

mysql分表后,如何知道信息存于哪张分表? - 知乎

总结

前半段很清楚就是分表别随便用,但是后半段分了之后怎么查这确实是难题。以我目前的认知就是要不还是使用分区吧!这个好像方便一点,而且这个要提前确定下来,要是以后确定了分表,那现在的sql就要用动态的,要不以后还得改。

以上是关于MySQL:要水平分表 吗?的主要内容,如果未能解决你的问题,请参考以下文章

mysql数据库要放1亿条信息怎样分表?

mysql数据库的水平分表与垂直分表实例讲解

MySQL优化分库分表,为什么要分表,分表以后如何进行排序查询,业务如何设计?

mysql--分表

mysql 水平分表

大厂必考:MySQL 分库分表