資料庫索引策略:NoSQL 如何優於傳統索引

高拉夫·森

年 月 日分鐘閱讀

這就是 NoSQL(通常)比 SQL 資料庫運行得更快的原因之一。

從根本上來說,資料庫效能資料庫索引策略取決於兩件事:讀取速度和寫入速度。

大多數應用程式都是讀取密集型的。這意味著您讀取資料的速度越快,您的用戶就越滿意。

這就是問題所在。

1. SQL 索引

資料庫索引取決於存取模式。存取模式是查詢和排序資料的方式。

知道這一點後,預先對資料進行排序並使用二分搜尋來快速搜尋範圍就有意義了。

1.使用B樹的SQL索引,單一索引

這種方法的優點是簡單。它的缺點是我們每個查詢只能使用一個索引。

即使我們在user_id和上建立索引,一次也只能使用一個。這是因為二分搜尋資料庫索引策略演算法可以遍歷單一「鍵」欄位。

對於非常大的資料集,這種方法很慢。

2.NOSQL 索引

NoSQL 資料庫是為 bc數據中國 擴展而建構的(這是一種奇特的說法,可以輕鬆地向 NoSQL 資料庫叢集添加節點)。

隨著資料集的擴展,我們將表拆分並將其負載平衡到不同的節點。

  1. 使用分割區和排序鍵的 NoSQL 索引

我們可以把這個缺點變成優點。

我們不是天真地拆分錶,而是將資料劃分為範圍。每個節點都提供一系列user_id鍵。這稱為分區鍵。

在每個分區內,我們建立一個索引來按時間戳記對資料進行排序。

bc數據中國

3. 綜合指數

我們的用例有第三種方法。如果我們的資料主要是透過user_id和timestamp來存取的,那麼合資料庫索引策略併這兩個欄位是有意義的。

這有助於我們在合 快速指南:金融服務電子郵件行銷 併欄位上執行二分搜尋(演算法期望一個統一的排序空間,該空間的維數並不重要)。

例如,搜尋用戶「8」且時間戳 > 50 將是

從user_activity選擇activity,其中composite_key >“8_50”;


3、複合關鍵索引,快速找到

這種方法是有效的。它也很容易實現,並且不需要對資料進行分區。

但是,您仍然需要跨節點聚合分散式資料庫。而且這種方式並不靈活(索引建立邏輯完全取決於存取模式)。

結論

根據您的使用案例,您可以 使用 中國資料庫 上面列出的三種方法之一對資料進行索引。請記住,您的選擇應考慮以下因素:

  • 訪問模式
  • 更新模式
  • 訪問與更新頻率

資料庫索引在系統設計中起著至關重要的作用。如果您想了解更多信息,請查看我們關於 SQL 與 NOSQL 的章節。

 

返回頂端