美文网首页
SQL 查询优化速查笔记

SQL 查询优化速查笔记

作者: AureSong | 来源:发表于2025-07-14 17:42 被阅读0次

一、EXPLAIN 是什么

EXPLAIN 是 SQL 查询的“体检工具”,能告诉我们:

· 数据库执行查询的顺序

· 是否走了索引

· 扫描了多少数据行

· 有没有全表扫描或临时表

二、EXPLAIN 输出重点字段

table:被访问的表

type:访问方式,性能好坏关键指标

rows:预计扫描的行数,越小越好

key:实际使用的索引

Extra:是否排序/临时表等提示

type 值性能从差到好:ALL > index > range > ref > eq_ref > const

如果是ALL,几乎就是全表扫描,要优化!

三、常见优化建议(写查询时可对照)

WHERE 子句:为筛选字段添加索引(如:订单号、客户ID)

JOIN 联接:JOIN 的字段要建立索引,避免全表比对

SELECT 列:避免 SELECT *,只查需要的列

计数优化:COUNT(*) 可用索引覆盖或缓存方案优化

ORDER BY:尽量使用索引字段排序,避免临时表 + filesort

LIMIT 分页:LIMIT 1000 OFFSET 1000 慎用,建议使用主键过滤或子查询代替

四、创建索引语法备忘

单字段索引:

CREATE INDEX idx_customer_id ON Customers(cust_id);

联合索引(最左前缀原则)

CREATE INDEX idx_orderitems_orderprod ON OrderItems(order_num, prod_id);

有顺序要求的联合索引,一定要按最左字段过滤才能生效。

五、优化流程建议

1 写出原始查询

2 用 EXPLAIN 检查执行计划

3 判断是否有全表扫描(type = ALL)

4 发现未使用索引 → 创建或调整索引

5 再次 EXPLAIN 验证优化效果

推荐使用场景

1 面试前冲刺:提升 SQL 技术含金量

2 自学巩固:把查询写“对”也写“快”

3 实战数据分析:处理上万行数据不卡顿

数据分析,一起努力。

相关文章

  • 如何使用慢查询

    慢查询的使用 慢速查询日志可用于查找执行时间较长的查询,这对我们在做sql性能优化有很大帮助。然而,检查一个文件较...

  • Java面试题:数据库优化策略有哪些?

    1、Sql优化主要优化的还是查询, 优化查询的话, 索引优化是最有效的方案。 首先要根据需求写出结构良好的SQL,...

  • SQL优化

    SQL优化 在sql查询中为了提高查询效率,我们常常会采取一些措施对查询语句进行sql优化,下面总结的一些方法,有...

  • 11-mysqlSQL分析

    六星教育 - java-mysql优化1909 SQL优化 所谓SQL优化:基于MySQL的优化器查询规则来优化S...

  • 不可置信!SQL 优化终于干掉了“distinct”

    sql 优化之多表联合查询干掉 “distinct” 去重关键字 所以需要把多表的子查询的 sql 结构进行优化。...

  • mysql 问题整理

    SQL 优化 范式 在sql查询中为了提高查询效率,我们常常会采取一些措施对查询语句进行sql优化,下面总结的一些...

  • MySQL | 使用 limit 优化查询和防止SQL被优化

    使用 limit 优化查询和防止SQL被优化 Table of Contents 查询优化 1.1 最大值和最小值...

  • 数据库索引相关问题

    如何定位并优化慢查询Sql 根据慢日志定位慢查询sql 使用explain等工具分析sql 修改sql或者尽量让s...

  • 2021-01-16 - mysql优化

    分页优化 表结构如下 根据主键的查询排序 sql查询 会用到索引吗? 非主键的排序分页查询 sql查询 会用到索引...

  • SQL 语句优化整理

    为了提高 SQL 查询效率,我们都会采取一切 SQL 语句的优化。 1 对查询进行优化,应尽量避免全表扫描,首先应...

网友评论

      本文标题:SQL 查询优化速查笔记

      本文链接:https://www.haomeiwen.com/subject/hsarnjtx.html