一、explain返回各列的含义:
1、table:显示这一行的数据是关于那张表的
2、type:重要的列,显示连接使用了何种类型,从最好到最差的连接类型为const、eq_reg、ref、range、index、ALL
3、possible_keys:显示可能应用在这张表中的索引,如果为空,没有可能的索引
4、key:实际使用的索引,如果为NULL,则没有使用索引
5、key_len:使用的索引的长度,在不损失精确性的情况下,长度越短越好
6、ref:显示索引的哪一列被使用了,如果可能的话,是一个常数
7、rows:mysql认为必须检查的用来返回请求数据的行数(扫描的行数)
8、extra列需要注意的返回值:
1)、Using filesort:看到这个的时候,查询就需要优化了,mysql需要进行额外的步骤来发现如何对返回的行排序,它根据连接类型以及存储排序键值和匹配条件的全部行的行指针来排序全部的行
2)、Using temporary:看到这个的时候,查询就需要优化了,这里,mysql需要创建一个临时表来存储结果,这通常发生在对不同的列集进行order by上,而不是group by上
二、分析和优化:
1、建立索引:create index idx_paydate on payment(payment_date);