要确定查询是否使用了索引,可以通过查看查询的执行计划来判断。大多数数据库管理系统(如MySQL、PostgreSQL、SQL Server等)都提供了工具来生成和查看查询的执行计划。以下是一些常见数据库的执行计划查看方法:
MySQL
1. 使用 EXPLAIN 关键字:
EXPLAIN SELECT * FROM orders WHERE order_date BETWEEN '2023-01-01' AND '2023-12-31';
2. 解释执行计划:
• type 列:表示访问类型,常见的值有 ALL(全表扫描)、index(索引扫描)、range(范围扫描)、ref(非唯一索引扫描)、eq_ref(唯一索引扫描)等。
• ALL:全表扫描,没有使用索引。
• index:索引扫描,扫描整个索引树。
• range:范围扫描,使用索引但只扫描一定范围内的索引。
• ref:非唯一索引扫描,使用索引但可能返回多个行。
• eq_ref:唯一索引扫描,通常用于主键或唯一索引。
• key 列:显示使用了哪个索引。
• rows 列:估计查询需要访问的行数。</