http://quant.dataguru.cn/thread-604751-1-1.html
如果索引的列在select子句中就不需要回表
如果select子句中有大量的非索引列,索引就需要到表中找到相应的列的信息,这就叫回表
老师说的索引三大特性,其中有一个索引存储列值(还有行的rowid)。如果select子句中,只有索引列,只需访问索引对象即可,不应回表。如果select子句中包含非索引列,就要读取索引存放的对应rowid,然后按照rowid去表中访问对应行的非索引列,就是回表了。 |
索引列也是表,如果索引中包括你需要的列,查询结果就找到了,如果没有你需要的列,索引列中有指针指向表记录的行位置,从表中查询列值。 |