這 30 天我將會跟著 PostgreSQL 官方文件,了解 PostgreSQL 中的各種 Index (B-Tree, GIN, Gist ...)、Isolation Levels 以及 Lock 機制。文章內會有各種小測試,來理解它們的使用時機和原理,歡迎對 PostgreSQL 有興趣的朋友們一起來學習~
昨天我們了解到 Index-Only Scan 可以省去 Heap Fetch 的步驟,減少 I/O 讓查詢速度變快。不過當中還有一個很重要的概念沒有提到,就...
既然講到 Visibility Map,就要提到 PostgreSQL 中的資料回收機制了,如果沒有定期將資料庫清理乾淨的話,可能會影響到 Visibilit...
終於要進入第二種 Index 了!認識完 B-Tree 之後,我們要來看看 GIN Index。目前 PostgreSQL 可以支援儲存 jsonb 格式的資...
在看完 jsonb 的 Index 之後,今天要來看的是 Full Text Search 了。全文搜尋也是實務上可能會碰到的問題,假如要搜尋的資料很多的話,...
在全文搜尋或是模糊搜尋的時候,常常會聯想到使用 ElasticSearch 加快速度,但其實 PostgreSQL 本身也有提供模糊搜尋的功能。今天這篇文章,...
在 Day 13 我們介紹了 GIN 與 GiST 兩種適合全文搜尋的 Index,而 GiST 事實上也能幫忙加快搜尋空間範圍的查詢。前一陣子在讀 Syst...
剩下最後來看看 BRIN Index 了。根據官方文件的敘述,BRIN 的全名為 Block Range Index,字面上來說是「區塊範圍」的 Index...
終於在學完各種不同的 Index 之後,來到最後一篇關於 Index 的章節了!在了解不同 Index 的特性之後,是不是急著想要將資料庫加上 Index?...
在高併發(High Concurrency)的場景下,我們除了關心速度之外,更重要的是「資料會不會錯」。想像你正在操作一筆銀行轉帳交易,當你從帳戶扣款的同時,...
經過前一天的文章,我們發現併發的 request 可能造成的現象,以及調整資料庫的 Isolation Level 可能影響資料庫的一致性。接下來我們就來實驗...