mysql优化。。。。
const是主键查找,eq_reg是范围查找,ref常见于连接的查询中


数据库优化


extra 列需要注意的返回值
Using filesort:看到这个的时候,查询就需要优化了。MYSQL 需要进行额外的步骤来发现如何对返回的行排序。它根据连接类型以及存储排序键值和匹配条件的全部行的行指针来排序全部行
Using temporary 看到这个的时候,查询需要优化了。这里,MYSQL 需要创建一个临时表来存储结果,这通常发生在对不同的列集进行 ORDER BY 上,而不是 GROUP BY 上
如何分析 SQL 查询
使用 explain 查询 SQL 的执行计划

explain 返回各列的含义
table:显示这一行的数据是关于哪张表的
type:这是重要的列,显示连接使用了何种类型。从最好到最差的连接类型为 const、eq_reg、ref、range、index 和 ALL
possible_keys:显示可能应用在这张表中的索引。如果为空,没有可能的索引。
key:实际使用的索引。如果为 NULL,则没有使用索引。
key_len:使用的索引的长度。在不损失精确性的情况下,长度越短越好
ref:显示索引的哪一列被使用了,如果可能的话,是一个常数
rows:MYSQL 认为必须检查的用来返回请求数据的行数


如何分析SQL查询---explain

如何分析sql查询
explain返回各列的含义
table:显示这一行的数据是关于哪张表的
type:这是重要的列,显示连接使用了何种类型。从最好到最差的连接类型为const、eq_reg、ref、range、index和ALL
possible_keys:显示可能应用在这张表中的索引。如果为空,没有可能的索引。
key:实际使用的索引。如果为null,则没有使用索引。
key_len:使用的索引长度 在不损失精确性的情况下,长度越短越好
ref:显示索引的哪一列被使用了,如果可能的话,是一个常数
rows:msyql 认为必须检查的用来返回请求数据的行数
explain从句作用:显示出sql的执行计划
(sql是需要经过执行计划的分析后,才能进行具体查询)
具体是
explain 具体sql;
看到extra列说明sql需要优化,因为这说明sql需要外部文件或者临时表来进行数据存储
当explain出现Using filesort 或者Using tempaoary时说明sql需要优化
extra列 关注
explain
如何分析SQL查询
explain返回各列的含义
explain需要注意的返回值
explain的含义
explain返回的含义
explain返回的信息
如何分析SQL查询:
explain返回各列的含义
table:显示这一行的数据是关于哪张表的
type:这是重要的列,显示连接使用了何种类型。从最好的到最差的连接类型为const/eq_reg/ref/range/index和ALL
possiable_keys:显示可能应用在这张表中的索引。如果为空,没有可能的索引。
key:实际使用的索引。如果为Null,则没有使用索引。
key_len:使用的索引的长度,在不损失精确性的情况下,长度越短越好。
ref:显示索引的哪一列被使用了,如果可能的话,是一个常数。
rows:MYSQL认为必须检查的用来返回请求数据的行数。
使用explain查询SQL的执行计划
如何分析SQL查询:
explain返回各列的含义
table:显示这一行的数据是关于哪张表的
type:这是重要的列,显示连接使用了何种类型。从最好的到最差的连接类型为const/eq_reg/ref/range/index和ALL
possiable_keys:显示可能应用在这张表中的索引。如果为空,没有可能的索引。
key:实际使用的索引。如果为Null,则没有使用索引。
key_len:使用的索引的长度,在不损失精确性的情况下,长度越短越好。
ref:显示索引的哪一列被使用了,如果可能的话,是一个常数。
rows:MYSQL认为必须检查的用来返回请求数据的行数。
explain列需要注意的返回值
explain各字段说明
用 in 的时候type是 range
用join/and 的时候type是ref
MySQL数据库优化 explain
如何分析SQL查询
如何分析SQL查询