在可以思考一个问题,如果数据量非常大的情况下,您根据业务选择了合适的字段,精心设计了表和索引,还仔细的检查了所有的SQL,并确认已经没什么问题,但性能仍然不能满足您的要求,该怎么办呢?还有其他优化策略吗?答案是肯定的。

接下来继续和您讨论一些常用的MySQL高级特性以及其背后的工作原理。

分区表
合理的使用索引可以极大提升MySQL的查询性能,但如果单表数据量达到一定的程度,索引就无法起作用,因为在数据量超大的情况下,除非覆盖索引,因回表查询会产生大量的随机I/O,数据库的响应时间可能会达到不可接受的程度。

而且索引维护(磁盘空间、I/O操作)的代价也会非常大。

因此,当单表数据量达到一定程度时(在MySQL4.x时代,MyISAM存储引擎业内公认的性能拐点是500W行,MySQL5.x时代的性能拐点则为1KW ~ 2KW行级别,具体需根据

收藏 打印