用explain extended查看执行计划会比explain多一列 filtered。filtered列给出了一个百分比的值,这个百分比值和rows列的值一起使用,可以估计出那些将要和explain中的前一个表进行连接的行的数目。前一个表就是指explain 的 id列的值比当前表的id小的表。
1、B-tree与B+tree
2、InnoDB索引结构
3、explain详解
B+树是从最早的平衡二叉树演化而来的。先了解
二叉查找树、
平衡二叉树(AVLTree)
平衡多路查找树(B-Tree)
B+树即由这些树逐步优化而来。
id:
select_type:对应行是简单还是复杂查询simple、primary、subquery、derived、union
table:explain的一行正在访问哪个表,当from子句中有查询是,table列是《derivenN》格式,表示当前查询依赖id=N的查询,于是先执行id=N的查询。当有union时,union result的table列的值为《union1,2》,1,2表示union的select行id
type:这个是重点
possible_keys:查询使用哪些索引来查询
key:实际采用哪个索引来优化对该表的访问;force index、ignore index(possible_keys)
key_len:索引里使用的字节数,可以计算出具体使用了索引中哪些列
查找数据行记录的大概范围:system>const>eq_ref>ref>range>index>All
mysql:优化阶段-执行阶段
mysql索引类型:聚簇索引
ref:显示了在key列记录的索引中,表查找值所用到的列或常量,常见的有const(常量),字段名(例如:film.id)
rows:mysql估计要读取并检查的行数,注意这个不是结果集里的行数
Extra:
explain详解
最新推荐文章于 2024-04-30 16:27:04 发布