从如下这张图可以看出能让数据库性能提升的最好方式就是对SQL语句进行调优。那么我们该如何进行调优呢?
以下是关于 MySQL 调优 的核心知识总结,涵盖性能优化的各个关键维度,帮助提升数据库响应速度和稳定性:
一、SQL 语句优化
1. 避免全表扫描
索引优化:
为高频查询的字段(如 WHERE/JOIN/ORDER BY/GROUP BY 涉及的字段)创建索引,但避免过度索引(影响写入性能)。
注意索引失效场景:
1.对索引字段使用函数(如 SELECT * FROM table WHERE YEAR(create_time) = 2023)。
2.隐式类型转换(如字段为 INT 却传入字符串 '123')。
3.使用 LIKE '%前缀%'(无法利用索引范围扫描)。
4.覆盖索引:创建包含查询所需所有字段的索引(CREATE INDEX idx ON table(col1, col2, col3)),避免回表查询。
2. 优化查询逻辑
减少子查询:改用 JOIN 替代多层嵌套子查询,提升执行效率。
避免 SELECT *:只查询必要字段,减少数据传输量。
分页优化:大偏移量分页(如 LIMIT 100000, 10)可通过子查询或 WHERE id > 上次最大ID 优化。
总结流程
定位问题:通过慢查询日志、监控工具(如 SkyWalking)找出慢查询。
分析语句:用 EXPLAIN 查看执行计划,确认是否走索引、扫描行数是否合理。
优化语句:添加索引、重写查询逻辑、避免全表扫描。
调整配置:根据服务器资源优化内存、磁盘等参数。
验证效果:对比优化前后的查询耗时、QPS(每秒查询数)等指标。
通过以上多维度优化,可显著提升 MySQL 数据库的性能和稳定性,适应高并发、大数据量的业务场景。
个人使用SQL时需要注意:
1.不用select*
2.小表驱动大表
3.group by后字段需要有索引
3.注意索引是否失效