#神器 EXPLAIN 语句
EXPLAIN 显示了 MySQL 如何使用索引来处理 SELECT 语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。
使用方法,在 SELECT 语句前加上 EXPLAIN 即可,如:
EXPLAIN SELECT * FROM tb_item WHERE cid IN (SELECT id FROM tb_item_cat)
- id: SELECT 识别符。这是 SELECT 的查询序列号
- select_type: SELECT类型,可以为以下任何一种
- table: 输出的行所引用的表
- partitions: 表分区
- type: 联接类型。下面给出各种联接类型,按照 从最佳类型到最坏类型 进行排序 system: 表仅有一行(=系统表)。这是 const 联接类型的一个特例。
possible_keys:
- key: 显示 MySQL 实际决定使用的键(索引)。如果没有选择索引, 键是 NULL。
- key_len: 显示 MySQL 决定使用的键长度。如果键是 NULL, 则长度为 NULL。
- ref: 显示使用哪个列或常数与 key 一起从表中选择行。
- rows: 显示 MySQL 认为它执行查询时必须检查的行数。多行之间的数据相乘可以估算要处理的行数。
- filtered: 显示了通过条件过滤出的行数的百分比估计值。
- Extra: 该列包含 MySQL 解决查询的详细信息
- 指出 MySQL 能使用哪个索引在该表中找到行
MySQL 优化
标签:函数 ike 分区 row lte mysql strong tab nbsp