跳至主要内容

3 篇文章 含有標籤「database」

檢視所有標籤

· 閱讀時間約 2 分鐘
Ckai

妥善建立索引可提升資料庫的讀取效能。在 MongoDB 的 CLI 當中可使用下列指令建立索引。

# 建立排序規則為 ASC 的索引
db.collection_name.createIndex({field: 1})

# 建立排序規則為 DESC 的索引
db.collection_name.createIndex({field: -1})

文本索引

上述指令可建立一般索引。如果建立索引的目的是提升查找文本(text)的效能,
則可考慮建立文本索引(Text Index),指令如下:

# 透過文本索引讀取資料
db.collection_name.find({$text: {$search: "string"}})

Stem 與 Stop Words

以英文句子「I am running in the park」為例,
am、the 等單獨存在時無法表達有實際意義的詞彙稱為 Stop Words(停用詞)。 文本索引主要參考 Stop Words 以外的詞與構成,而非儲存資料當中的一字一句。

根據文本索引篩選資料時,篩選的依據是傳入 Filter 當中的詞幹(Stem)。 以 running 為例,其詞幹為 run,而 runs 也可能被視為相同的詞幹。
總而言之,善用停用詞與詞幹的特性,都是有助於節省儲存空間或計算資源的方法。

· 閱讀時間約 1 分鐘
Ckai

覆蓋查詢(Covered Queries)係指在資料庫執行查詢時,
僅使用索引資料或索引結構就能回應該查詢,無需查詢實際的資料。

覆蓋查詢的優點是減少磁碟與記憶體的 I/O 操作,可提高查詢的執行速度和效率。
特別適用於大型資料集和複雜的查詢,可以減少系統的負載和資源消耗。

要實現覆蓋查詢,通常需要適當的資料庫設計與索引策略。
開發人員需要仔細考慮查詢中使用的欄位和索引的設置,
以確保索引能涵蓋所需的資料,進而實現覆蓋查詢的效果。

· 閱讀時間約 4 分鐘
Ckai

讀取現象(Read Phenomena)

在資料庫系統中,讀取現象係指在並行處理的環境下,多個交易對同一組資料進行讀取操作時可能出現的不一致。這些不一致可能影響交易的結果或導致資料不正確。

常見的讀取現象包括: