实战经验:MySQL 构建高并发网站性能优化

最近在优化一个比较大型的高并发网站,收益颇多,经验分享给大家。

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

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

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

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

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

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

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

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

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

你可能感兴趣的:(实战经验:MySQL 构建高并发网站性能优化)