回表

http://quant.dataguru.cn/thread-604751-1-1.html


如果索引的列在select子句中就不需要回表

如果select子句中有大量的非索引列,索引就需要到表中找到相应的列的信息,这就叫回表


老师说的索引三大特性,其中有一个索引存储列值(还有行的rowid)。如果select子句中,只有索引列,只需访问索引对象即可,不应回表。如果select子句中包含非索引列,就要读取索引存放的对应rowid,然后按照rowid去表中访问对应行的非索引列,就是回表了。
索引列也是表,如果索引中包括你需要的列,查询结果就找到了,如果没有你需要的列,索引列中有指针指向表记录的行位置,从表中查询列值。

你可能感兴趣的:(MYSQL语句优化)