iT邦幫忙

鐵人檔案

2025 iThome 鐵人賽
回列表
Software Development

PostgreSQL 效能優化 30 天挑戰:從 Index 到 Transaction 的深入探索 系列

這 30 天我將會跟著 PostgreSQL 官方文件,了解 PostgreSQL 中的各種 Index (B-Tree, GIN, Gist ...)、Isolation Levels 以及 Lock 機制。文章內會有各種小測試,來理解它們的使用時機和原理,歡迎對 PostgreSQL 有興趣的朋友們一起來學習~

鐵人鍊成 | 共 30 篇文章 | 19 人訂閱 訂閱系列文 RSS系列文 團隊籠中鳥
DAY 21

Day 21 - 觀察 PostgreSQL 隔離層級:Serializable

昨天我們分別在 Read committed 以及 Repeatable read 觀察了 Non Repeatable Read 以及 Phantom Re...

2025-09-21 ‧ 由 claudiateng 分享
DAY 22

Day 22 - Table Lock 是什麼?什麼時候會遇到它?

在上一篇文章中,我們介紹了 PostgreSQL 的隔離層級(Isolation Levels),了解資料庫如何在多個交易同時進行時維持一致性。但實務上,光靠...

2025-09-22 ‧ 由 claudiateng 分享
DAY 23

Day 23 - Row Level Lock:FOR SHARE 讀鎖的應用與實驗

再來要介紹的是 Row Level 的鎖了,相較於 Table Level Lock 會鎖住整張表,Row Level Lock 只會影響特定的資料行。Pos...

2025-09-23 ‧ 由 claudiateng 分享
DAY 24

Day 24 - Row Level Lock:FOR UPDATE 寫鎖的應用與實驗

接著讀鎖下一個要介紹的是寫鎖,寫鎖的用途其實很生活化,大家應該都有搶過演唱會門票吧?寫用寫鎖的情境就像是搶演唱會門票一樣,為了防止兩個人可以同時搶到一樣的位子...

2025-09-24 ‧ 由 claudiateng 分享
DAY 25

Day 25 - Deadlock:當交易互相卡住,該怎麼辦?

在看完 Table & Row Level Lock 之後,我們要來看看 Deadlock(死鎖)。在資料庫的世界裡,當多個 transactions...

2025-09-25 ‧ 由 claudiateng 分享
DAY 26

Day 26 - Slow Query:找出拖慢系統的 SQL 查詢

假如在開發產品的時候,想要知道是否有 SQL 指令查詢效率很差,我們能有什麼工具來監控呢?慢查詢(Slow Query)是影響效能的主要瓶頸之一,如果有查詢執...

2025-09-26 ‧ 由 claudiateng 分享
DAY 27

Day 27 - PostgreSQL 的 JOIN 機制

最後一個關於效能的主題,我們要來看的是在 PostgreSQL 中不同的 JOIN 方式。JOIN 是將多個表的資料關聯起來的方式,而 PostgreSQL...

2025-09-27 ‧ 由 claudiateng 分享
DAY 28

Day 28 - 使用 FastAPI + SQLModel 定義 Table 與 Index

在了解完資料庫效能的議題後,要怎麼在專案中有效的管理這些 Table 與 Index 呢?最後幾天我們要來以 FastAPI 為範例,搭配使用 SQLMode...

2025-09-28 ‧ 由 claudiateng 分享
DAY 29

Day 29 - 在 FastAPI 中使用 Alembic 進行資料庫 migration

在前一天的內容中,我們使用 SQLModel 來定義資料表,並且可以自動建立 Table 與 Index。不過,當專案開發進行到一定程度時,我們可能會遇到修改...

2025-09-29 ‧ 由 claudiateng 分享
DAY 30

Day 30 - 用 Alembic 自動產生 migration

在前一篇文章中,我們學會了如何在 FastAPI 專案中使用 Alembic 進行資料庫 migration。不過前一篇我們是自己手動撰寫 migration...

2025-09-30 ‧ 由 claudiateng 分享