高拉夫·森
年 月 日分鐘閱讀
這就是 NoSQL(通常)比 SQL 資料庫運行得更快的原因之一。
從根本上來說,資料庫效能資料庫索引策略取決於兩件事:讀取速度和寫入速度。
大多數應用程式都是讀取密集型的。這意味著您讀取資料的速度越快,您的用戶就越滿意。
這就是問題所在。
1. SQL 索引
資料庫索引取決於存取模式。存取模式是查詢和排序資料的方式。
知道這一點後,預先對資料進行排序並使用二分搜尋來快速搜尋範圍就有意義了。
1.使用B樹的SQL索引,單一索引
這種方法的優點是簡單。它的缺點是我們每個查詢只能使用一個索引。
即使我們在user_id和上建立索引,一次也只能使用一個。這是因為二分搜尋資料庫索引策略演算法可以遍歷單一「鍵」欄位。
對於非常大的資料集,這種方法很慢。
2.NOSQL 索引
NoSQL 資料庫是為擴 企業主資料庫 展而建構的(這是一種奇特的說法,可以輕鬆地向 NoSQL 資料庫叢集添加節點)。
隨著資料集的擴展,我們將表拆分並將其負載平衡到不同的節點。
- 使用分割區和排序鍵的 NoSQL 索引
我們可以把這個缺點變成優點。
我們不是天真地拆分錶,而是將資料劃分為範圍。每個節點都提供一系列user_id鍵。這稱為分區鍵。
在每個分區內,我們建立一個索引來按時間戳記對資料進行排序。
3. 綜合指數
我們的用例有第三種方法。如果我們的資料主要是透過user_id和timestamp來存取的,那麼合資料庫索引策略併這兩個欄位是有意義的。
這有助於我們在合 快速指南:金融服務電子郵件行銷 併欄位上執行二分搜尋(演算法期望一個統一的排序空間,該空間的維數並不重要)。
例如,搜尋用戶「8」且時間戳 > 50 將是
從user_activity選擇activity,其中composite_key >“8_50”;
3、複合關鍵索引,快速找到
這種方法是有效的。它也很容易實現,並且不需要對資料進行分區。
但是,您仍然需要跨節點聚合分散式資料庫。而且這種方式並不靈活(索引建立邏輯完全取決於存取模式)。
結論
根據您的使用案例,您可以 使用 中國資料庫 上面列出的三種方法之一對資料進行索引。請記住,您的選擇應考慮以下因素:
- 訪問模式
- 更新模式
- 訪問與更新頻率
資料庫索引在系統設計中起著至關重要的作用。如果您想了解更多信息,請查看我們關於 SQL 與 NOSQL 的章節。