MySQL 构建高并发网站性能优化

1.表字段分割。经常访问的表、行数量大的表,切记保持最少长度字段,不在select列表的数据,请做垂直分割。举例:文章表,不要将文章正文部分的内容存在文章信息表里,可以将这个字段独立存储到另一张表articleContent(articleID,articleContext)。因为这个字段长度大,影响查询时的行扫描。

2.频繁更新的字段做表的垂直分割。在做更新操作时,一般会做行锁定,有的会设置成表锁定。那么在做query的时候,更新操作没完成前,所有查询都会排队等待。

3.尽量做cache字段,减少表关联查询。

4.对一些非重要、非实时性强的数据,做定时更新,而不是实时更新。

5.索引。好的索引对查询的效果可以达成百上千倍,但前提是好的数据表结构设计。索引太多容易引起更新变慢。注意where和orderby里的字段。关于索引,我会开专题讲解优化。

6.定期重建索引。使用一定时间后,会有索引碎片的问题,这就如磁盘碎片整理。

7.过滤慢查询,一般系统查询时间超过0.1s的都要检查。

8.善用explain分析查询成本。进行了全表扫描的语句都要考虑优化,如几百内的小数据量表除外。

9.配置参数优化。如临时表size、锁机制、数据库引擎类型。

相关推荐