Index
我們可以通過從日期列創建索引來獲得任何性能提升嗎?
date
我已經看到在我的項目中的列上創建了很多索引。通常,索引是用於創建索引的date
列和另一列(如)的組合。state
由於該
date
列是唯一增加的值,因此在該列上創建索引是否有任何性能提升?我的理解是數據庫引擎創建一個二叉搜尋樹作為索引。我無法理解不斷增加的價值會從 btree 中受益。
電話簿包含人員列表及其電話號碼。
如果這個列表是無序的,並且您正在尋找書中未列出的人,那麼您必須繼續處理列表中的每條記錄,直到列表用完為止。
訂購使我們可以進行更大/更小的比較。如果列表是有序的並且我們逐行進行,我們將找到請求的行,或者我們會找到鍵大於請求的行。我們可以做出合理的假設,即以下所有行的鍵也更大。
我們可以在有序列表上使用樹搜尋。假設我們將電話簿分成兩等份,然後查看中間的任意行。如果密鑰大於給定的密鑰,我們將取本書的前半部分並遞歸地重複該過程。如果列表是無序的,則不可能進行樹搜尋。
BTree 將列表分成兩個以上的部分,但想法是相同的。排序、拆分和比較。事情就是這樣。