回表的含義

mcxiaoracle發表於2023-10-16

table 表 abcdid 幾個欄位  建立(a,b)

select * from table where a<10;

根據ID回到主鍵索引樹去查詢  回表。

覆蓋索引是覆蓋的資料,減少了回表的次數。


通俗的講就是,如果 select所需獲得列中有非索引列 ,一次索引查詢不能獲取所有資訊,需要到表中找到相應的列的資訊。這就叫 回表


也就是說,需要從輔助索引(Secondary Index)中獲取額外的資料列,需要透過 輔助索引回到主鍵索引 (Primary Index)中進行查詢。


聚簇索引的葉子節點包含整個行記錄,一次索引查詢就能獲取所有的資訊。故不需要回表

需要回表的情況

  1. SELECT語句使用了非聚集索引:

    如果查詢語句 使用了非聚集索引(輔助索引)並 需要返回非索引欄位的值,就會觸發回表操作。因為輔助索引中只包含索引列的值,而非索引欄位的值儲存在主鍵索引中,所以需要回到主鍵索引中獲取完整的資料行。

2. 查詢包含了不在索引中的欄位: 如果查詢語句需要返回 不在輔助索引中的欄位 就會觸發回表操作。

就需要回到主鍵索引中獲取完整的資料行。


參考資料;
https://blog.csdn.net/qq_46130027/article/details/131020002









來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69949806/viewspace-2989221/,如需轉載,請註明出處,否則將追究法律責任。

相關文章