請幫我在得到IOT和正常指數之間的差異IOT和正常指數有什麼區別?
回答
的IOT不是索引的表,它是表。
它與(B-tree)索引具有相同的結構,但不包含指向表的rowid,它包含整行。
這有一個副作用,那就是該表中的記錄沒有永久的rowid(因爲它們會在索引重新組織時移動)。如果你想在IOT上構建額外的索引,這是一個問題。它通過使用擴展的rowid來解決:輔助索引包含一個rowid,但如果它不再有效,它還包含主鍵,以便您仍可以識別該行。
IOT是表存儲在B樹索引結構的變體中。在堆組織的表格中,行插入在適合的位置。在索引組織的表中,行存儲在表的主鍵上定義的索引中。 B樹中的每個索引條目還存儲非鍵列值。因此,索引是數據,數據是索引。應用程序使用SQL語句操縱索引組織的表,就像堆組織的表一樣,使用SQL語句。
對於索引組織表格的類比,假設人力資源經理擁有紙箱的書籍案例。每個盒子都標有數字1,2,3,4等等,但盒子並不按順序放在架子上。相反,每個盒子都包含一個指向序列中下一個盒子的盒子位置的指針。
包含員工記錄的文件夾存儲在每個框中。這些文件夾按員工ID排序。員工國王ID爲100,這是最低的ID,因此他的文件夾位於框1的底部。員工101的文件夾位於100的頂部,102位於101的頂部,依此類推,直到框1已滿。序列中的下一個文件夾位於方框2的底部。
在此類推中,按員工ID排序文件夾可以高效搜索文件夾而無需維護單獨的索引。假設用戶請求員工107,120和122的記錄。管理員可以按順序搜索文件夾並檢索找到的每個文件夾,而不是在一個步驟中搜索索引並在單獨的步驟中檢索文件夾。
索引組織表提供了通過主鍵或鍵的有效前綴更快地訪問錶行。葉片塊中行的非關鍵列的存在避免了額外的數據塊I/O。例如,員工100的工資存儲在索引行本身中。另外,因爲行以主鍵順序存儲,主鍵或前綴的範圍訪問涉及最小的塊I/O。另一個好處是避免了單獨主鍵索引的空間開銷。
欲瞭解更多,請閱讀Overview of IOT
- 1. 常量指針和整型常量指針有什麼區別?
- 2. 參考變量和常量指針變量有什麼區別?
- 3. 變量===常數和常量===變量有什麼區別
- 4. 單元測試和正常測試有什麼區別?
- 5. 正常softmax和採樣softmax之間有什麼區別?
- 6. 日誌和正常文件寫入有什麼區別?
- 7. 有什麼區別`和$(Bash中有什麼區別?
- 8. 正常指針和常量指針在c中的區別
- 9. 回調函數和常規函數有什麼區別?
- 10. ==和===有什麼區別?
- 11. ==和===有什麼區別?
- 12. 有什麼區別? :和||
- 13. ==和===有什麼區別?
- 14. '=='和'==='有什麼區別?
- 15. `&`和`ref`有什麼區別?
- 16. 有什麼區別:。!和:r!?
- 17. | 0和~~有什麼區別?
- 18. Appender和〜有什麼區別?
- 19. 數組和ArrayList有什麼區別?
- 20. 數組和散列有什麼區別?
- 21. NtFsControlFile()和DeviceIoControl()函數有什麼區別?
- 22. IEnumerable和數組有什麼區別?
- 23. 字典和數組有什麼區別?
- 24. $ get和$ find函數有什麼區別?
- 25. int和char數組有什麼區別?
- 26. round()和trunc()函數有什麼區別?
- 27. Rank和指定數組中的[,]有什麼區別?
- 28. 這兩個指針有什麼區別?
- 29. C:指針=變量和指針=變量有什麼區別?
- 30. ,對象和指向對象的指針有什麼區別?