Hash Tables
為了能讓 DBMS 快速查找資料,我們需要應用一些資料結構來幫助我們,其中最常見的是 Hash Table 跟 Tree。
這些資料結構會被用在不同的地方,例如 :
- Internal Metadata
- Core Data Storage
- Temporary Data Structures
- Table Indexes
在使用這些資料結構時,我們需要考慮以下幾點 :
- Data Organization : 要如何把資料放到 page / memory 中,以及需要哪些資訊來支持更高效的查詢
- Concurrency : 如何讓多個 worker 同時存取資料而不會出現問題
而本節我們會先討論 Hash Table,並在下一節討論 Tree。
Hash Tables
hash table 是一個無序的資料結構,可以用來儲存 key-value pair,並且可以快速查找資料。
主要可以分為兩個部分 :
- Hash Function
- 如何將有較多可能性的 key 映射到較少可能性的 index