MySQL是一个强大的开源数据库。随着MySQL上的应用越来越多,MySQL逐渐遇到了瓶颈。这里提供一些关于Mysql 数据库查询优化的24条优化建议,仅供参考。
Mysql 查询优化
1、使用慢查询日志,找出执行慢的查询。
2、使用 EXPLAIN 来决定查询功能是否合适。
3、经常测试你的查询,看是否需要做性能优化
性能可能会随着时间的变化而变化。
4、避免在整个表上使用count(*) ,它可能会将整个表锁住。
5、保持查询一致,这样后续类似的查询就能使用查询缓存了。
6、如果合适,用 GROUP BY 代替 DISTINCT。
7、在 WHERE、GROUP BY 和 ORDER BY 的列上加上索引。
8、保证索引简单,不要在同一列上加多个索引。
9、有时,MySQL 会选择错误的索引,这种情况使用 USE INDEX。
10、使用 SQL_MODE=STRICT 来检查问题。
11、索引字段少于5个时,UNION 操作用 LIMIT,而不是 OR。
12、使用 INSERT ON DUPLICATE KEY 或 INSERT IGNORE 来代替 UPDATE,避免 UPDATE 前需要先 SELECT。
13、使用索引字段和 ORDER BY 来代替 MAX。
14、避免使用 ORDER BY RAND()。
15、LIMIT M,N 在特定场景下会降低查询效率,有节制使用。
16、使用 UNION 来代替 WHERE 子句中的子查询。
17、对 UPDATE 来说,使用 SHARE MODE 来防止排他锁。
18、重启 MySQL 时,记得预热数据库,确保将数据加载到内存,提高查询效率。
19、使用 DROP TABLE ,然后再 CREATE TABLE ,而不是 DELETE FROM ,以删除表中所有数据。
20、最小化你要查询的数据,只获取你需要的数据,通常来说不要使用 *。
21、考虑持久连接,而不是多次建立连接,已减少资源的消耗。
22、基准查询,包括服务器的负载,有时一个简单的查询会影响其他的查询。
23、当服务器的负载增加时,使用SHOW PROCESSLIST来查看慢的/有问题的查询。
24、在存有生产环境数据副本的开发环境中,测试所有可疑的查询。