🔧 一、SQL语句层面的优化
1. 只查询所需字段,避免使用 SELECT *性字段
3. 避免函数包裹列,因为函数处理会导致无法命中索引
4. 避免隐式类型转换,确保字段与常量类型一致,因为数据库自动转换导致索引失效
5. 用LIMIT限制返回记录数
8. 减少嵌套子查询,尽量改为 JOIN,如果非用不可,要注意EXISTS/IN子查询返回的结果集大小,结果集大时用EXISTS,结果集小时用IN
9. 对频繁重复使用的查询使用临时表
📈 二、索引优化
1. 创建合适的索引
-
常用于 JOIN、WHERE、ORDER BY、GROUP BY 的字段应考虑建索引。
2. 使用覆盖索引
-
查询字段完全包含在索引中时,避免回表,提高效率。
3. 避免冗余索引与重复索引
4. 避免在低基数列上建索引
-
比如性别字段,只有男女两个值,不适合建索引。
💾 三、数据层面优化
1. 分区表 / 分区索引
-
针对大表按日期、区域等划分,减少扫描数据量。
2. 物化视图
-
将复杂计算结果提前物化,适合用于频繁使用的分析结果。
3. 预聚合表
-
对每日、每小时进行聚合,避免实时聚合大数据。

浙公网安备 33010602011771号