数据在mysql中,大约10个字段,预计达到300万条。
网站注册时需要在这300万条记录中找到相匹配的;
如何做到优化?
请教
PHP中文网2017-04-17 12:04:41
不考虑硬件、业务、数据库参数与表结构设计等,直接按数据量来衡量是否要分表,不是扯蛋么。
巴扎黑2017-04-17 12:04:41
mysql单表达到1000W到2000W的时候还能提供较好的服务,目前线上有一张表1000W多点,还没有出现性能问题,多张表在几百万的数据,开始考虑分表了,如果表比较简单,索引合理的话300W完全不需要分表,记得DBA说过mysql单表超过5千万还是6千万还是几千万来着性能会下降的比较厉害,所以没达到千万级别还不需要考虑分表的事
大家讲道理2017-04-17 12:04:41
网站注册时需要在这300万条记录中找到相匹配的;
你要想的是现在就模拟这种情况的去看db的性能,优化好索引和你的实现,分表在这个数据量上还不需要。
阿神2017-04-17 12:04:41
@gongweixin ,您说的没错,理论上确实5000万以上才会性能急剧下降,有些db架构师也是这么说过。但是实际情况却不一定,按照一部分的真实项目,500万以上就会开始慢了。当然,这个跟具体的业务逻辑、响应要求、表设计也是很有关系的。表字段全是int类型的,可以到1000万以上再优化。
@Mr_Jing 说的对,到了300万,是时候作好优化的技术储备了。但是不一定分表,可以通过缓存、搜索引擎等技术也都可以提高性能。
具体什么时候优化,还是得看你系统监控的情况。
也可以看看我这篇文章:mysql方案