索引是一個利於查找的資料結構,而且還緩存在記憶體中,用索引查找出實體行位址非常快,但是從實體行中提取出(回行)需要的欄位值,就會慢一點了。
查詢索引是快的,利用索引從實體磁碟中找到要的所有資料(回行)是慢的。
如上圖,索引是usename,如果select的字段有id,username,age..那麼得去物理行提取資料;如果select id 那麼索引裡就存著呢,不用去找就直接啦就滿足了。
總結:查詢的內容正好在索引中就有,不需要回行查找,這種情況叫做索引覆蓋
如果出現了上邊Using index 部分,就表示使用了覆蓋索引。
innodb引擎在覆蓋索引上面更進一步:
innodb引擎的所有儲存了主鍵ID,事務ID,回滾指針,非主鍵ID,
他的查詢就會是非主鍵ID也可覆蓋來取得主鍵ID 。
以上就是Mysql-索引涵蓋的內容,更多相關內容請關注PHP中文網(m.sbmmt.com)!