Open afredlyj opened 8 years ago
首先,order by语法中,有些情况下会走索引,有些情况下不会走索引,这里有详细的说明。
Innodb 在order by id中,不走索引的问题,5.0已经修复——bug。
每个Innodb的数据表都有一个被称为clustered index的索引(聚簇索引),聚簇索引的选择有如下原则:
clustered index
详细信息可以参考这里。 当表有聚簇索引时,它的数据实际上存放在索引的叶子叶。 除聚簇索引之外的索引,都被称为二级索引(Secondary Indexes)。
不重复的索引值(也成为基数)和数据表的记录总数(#T)的比值,范围从1/#T到1。该值越高,查询效率越高,因为这样的索引可以让mysql在查找时过滤更多的行。
在Mysql中,可以通过索引直接获取列的数据,不需要根据索引找到数据行,然后再读取数据行。如果一个索引包含(或者覆盖)所有需要查询的字段的值,就成为覆盖索引。
Mysql filesort 的分析
首先,order by语法中,有些情况下会走索引,有些情况下不会走索引,这里有详细的说明。
Innodb 的聚簇索引
Innodb 在order by id中,不走索引的问题,5.0已经修复——bug。
每个Innodb的数据表都有一个被称为
clustered index
的索引(聚簇索引),聚簇索引的选择有如下原则:详细信息可以参考这里。 当表有聚簇索引时,它的数据实际上存放在索引的叶子叶。 除聚簇索引之外的索引,都被称为二级索引(Secondary Indexes)。