1.Using:表示MySQL将使用外部索引对数据进行排序,而不是按照表中索引的顺序读取。 MySQL中使用索引无法完成的排序操作称为“文件排序”
2.Using:临时表用于保存中间结果。 MySQL在对查询结果进行排序时使用临时表。 常用于排序order by和分组查询group by
3、使用索引:表示在相应的操作中使用覆盖索引(Index)来避免访问表的数据行,效率很高。 如果同时出现using where,则表示使用索引来进行索引键值的搜索; 如果using where没有同时出现,则表明索引是用来读取数据的,而不是执行搜索动作来覆盖索引(Index):理解方法一:数据列只需要从索引中读取,而不读取数据行。 MySQL可以使用索引返回列表中的字段,而无需根据索引再次读取数据文件。 也就是说,查询的列必须被建好的索引覆盖。 理解方法二:索引是一种高效查找行的方式,但是一般的数据库也可以使用索引来查找某列中的数据,所以不必读取整行。毕竟索引叶子节点存储的是它们索引的数据; 当通过读取索引可以获得想要的数据时,就不需要读取行了。 包含(覆盖)满足查询结果的数据的索引称为覆盖索引。 注意:如果要使用覆盖索引,一定要从列表中只取出需要的列,而不是*,因为如果所有字段都一起建立索引,如果索引文件太大,查询性能会下降。
6. where:WHERE子句的值始终为假,不能用于获取任何元组。
7.away:基于不带GROUP BY子句的索引优化MIN/MAX操作,或者优化存储引擎的COUNT(*)操作。 无需等待执行阶段即可进行计算。 优化在查询执行计划生成阶段完成。
8.:优化操作,找到第一个匹配祖先后停止查找相同值的操作。