如果单表的数据达到300万,是否考虑分表?

数据在mysql中,大约10个字段,预计达到300万条。

网站注册时需要在这300万条记录中找到相匹配的;

如何做到优化?

请教

阅读 31.1k
9 个回答

500W分表,已经到300W了,应该储备知识,做好分表打算了。

索引处理好,不至于要分表

mysql单表达到1000W到2000W的时候还能提供较好的服务,目前线上有一张表1000W多点,还没有出现性能问题,多张表在几百万的数据,开始考虑分表了,如果表比较简单,索引合理的话300W完全不需要分表,记得DBA说过mysql单表超过5千万还是6千万还是几千万来着性能会下降的比较厉害,所以没达到千万级别还不需要考虑分表的事

不考虑硬件、业务、数据库参数与表结构设计等,直接按数据量来衡量是否要分表,不是扯蛋么。

  1. FIO、SSD、HDD。。。
  2. 简单查询、复杂查询。。。
  3. 索引优化、缓存技术。。。

再加两个0的时候考虑

网站注册时需要在这300万条记录中找到相匹配的;

你要想的是现在就模拟这种情况的去看db的性能,优化好索引和你的实现,分表在这个数据量上还不需要。

@gongweixin ,您说的没错,理论上确实5000万以上才会性能急剧下降,有些db架构师也是这么说过。但是实际情况却不一定,按照一部分的真实项目,500万以上就会开始慢了。当然,这个跟具体的业务逻辑、响应要求、表设计也是很有关系的。表字段全是int类型的,可以到1000万以上再优化。
@Mr_Jing 说的对,到了300万,是时候作好优化的技术储备了。但是不一定分表,可以通过缓存、搜索引擎等技术也都可以提高性能。
具体什么时候优化,还是得看你系统监控的情况。
也可以看看我这篇文章:mysql方案

看你的业务情况 查询语句
如果都是命中索引的查询还是不需要分表的

新手上路,请多包涵

找好分表的准备,数据多了性能是个问题哦。。

推荐问题
宣传栏