前言
MySQL查询进行SQL查询,一般要求尽量使用到索引,否则会导致全表扫描。
问题1:全表扫描会产生什么问题?全表扫描实际上是直接扫描表的主键索引,依次读并发送。详细介绍,查看以下博客。MySQL-全表扫描 以及MySQL-全表扫描成本计算
另外,简单查询是不会加锁的。例如select * from table;
问题2:怎么确定有没有使用到索引?explain关键字
Explain
使用Explain关键字查询SQL执行情况,结果会有以下几个字段。分别是:id、select_type、table、type、possible_keys、key、key_len、rows、Extra。
select_type 查询类型
select_type查询类型 | 说明 |
---|---|
SIMPLE | 简单的 select 查询,不使用 union 及子查询 |
PRIMARY | 最外层的 select 查询 |
SUBQUERY | 在select或者where中包含了子查询,子查询中的第一个 select 查询,不依赖于外部查询的结果集 |
DEPENDENT SUBQUERY |