最近在优化一个比较大型的高并发网站,收益颇多,经验分享给你们。 数据库
1. 表字段分割。常常访问的表、行数量大的表,切记保持最少长度字段,不在select列表的数据,请作垂直分割。举例:文章表,不要将文章正文部分的内容存在文章信息表里,能够将这个字段独立存储到另外一张表articleContent(articleID,articleContext)。由于这个字段长度大,影响查询时的行扫描。 并发
2. 频繁更新的字段作表的垂直分割。在作更新操做时,通常会作行锁定,有的会设置成表锁定。那么在作query的时候,更新操做没完成前,全部查询都会排队等待。 高并发
3. 尽可能作cache字段,减小表关联查询。 优化
4. 对一些非重要、非实时性强的数据,作定时更新,而不是实时更新。 网站
5. 索引。好的索引对查询的效果能够达成百上千倍,但前提是好的数据表结构设计。索引太多容易引发更新变慢。注意where和order by里的字段。关于索引,我会开专题讲解优化。 设计
6. 按期重建索引。使用必定时间后,会有索引碎片的问题,这就如磁盘碎片整理。 orm
7. 过滤慢查询,通常系统查询时间超过0.1s的都要检查。 索引
8. 善用explain分析查询成本。进行了全表扫描的语句都要考虑优化,如几百内的小数据量表除外。 配置
9. 配置参数优化。如临时表size、锁机制、数据库引擎类型。 select