這 30 天我將會跟著 PostgreSQL 官方文件,了解 PostgreSQL 中的各種 Index (B-Tree, GIN, Gist ...)、Isolation Levels 以及 Lock 機制。文章內會有各種小測試,來理解它們的使用時機和原理,歡迎對 PostgreSQL 有興趣的朋友們一起來學習~
昨天我們分別在 Read committed 以及 Repeatable read 觀察了 Non Repeatable Read 以及 Phantom Re...
在上一篇文章中,我們介紹了 PostgreSQL 的隔離層級(Isolation Levels),了解資料庫如何在多個交易同時進行時維持一致性。但實務上,光靠...
再來要介紹的是 Row Level 的鎖了,相較於 Table Level Lock 會鎖住整張表,Row Level Lock 只會影響特定的資料行。Pos...
接著讀鎖下一個要介紹的是寫鎖,寫鎖的用途其實很生活化,大家應該都有搶過演唱會門票吧?寫用寫鎖的情境就像是搶演唱會門票一樣,為了防止兩個人可以同時搶到一樣的位子...
在看完 Table & Row Level Lock 之後,我們要來看看 Deadlock(死鎖)。在資料庫的世界裡,當多個 transactions...
假如在開發產品的時候,想要知道是否有 SQL 指令查詢效率很差,我們能有什麼工具來監控呢?慢查詢(Slow Query)是影響效能的主要瓶頸之一,如果有查詢執...
最後一個關於效能的主題,我們要來看的是在 PostgreSQL 中不同的 JOIN 方式。JOIN 是將多個表的資料關聯起來的方式,而 PostgreSQL...
在了解完資料庫效能的議題後,要怎麼在專案中有效的管理這些 Table 與 Index 呢?最後幾天我們要來以 FastAPI 為範例,搭配使用 SQLMode...
在前一天的內容中,我們使用 SQLModel 來定義資料表,並且可以自動建立 Table 與 Index。不過,當專案開發進行到一定程度時,我們可能會遇到修改...
在前一篇文章中,我們學會了如何在 FastAPI 專案中使用 Alembic 進行資料庫 migration。不過前一篇我們是自己手動撰寫 migration...