以下會以 PostgreSQL 為例
PostgreSQL 將 table 資料都存成一個一個的檔案,我們稱為 Heap 或 Heap files,Heap file 由多個 Block 組成,每個 Block 為 8KB,Block 裡面的 Item 或叫 Tuple ,就是一行一行的 Row
關係:Heap File > Block > Item
假設我們跑這個 Query
SELECT * FROM users WHERE username = 'Rianna'; |
PostgreSQL 會從硬碟裡讀取整個 Head File 載入到記憶體,然後執行 Query ,一個一個找,直到最終找到 username 等於 Rianna,我們稱這樣的的查詢方式為 Full Table Scan,通常這樣會導致不好的效能