淺談MySQL、PostgreSQL、Oracle使用的三種 join 演算法
工作中前前後後也接觸過了 MySQL、PostgreSQL、Oracle 三種資料庫。每次寫完 SQL 習慣性用 explain 看一下執行計劃,久了之後注意到一件有趣的事,雖然三家 DB 的語法和輸出格式各有不同,但 join 的執行計劃翻來覆去都圍繞著類似的幾個關鍵字。稍微研究後才發現,這背後其實大概可以歸納為三種 join 演算法。
因此本篇想來聊聊在各大 DB 常見使用的三種 join 演算法。
工作中前前後後也接觸過了 MySQL、PostgreSQL、Oracle 三種資料庫。每次寫完 SQL 習慣性用 explain 看一下執行計劃,久了之後注意到一件有趣的事,雖然三家 DB 的語法和輸出格式各有不同,但 join 的執行計劃翻來覆去都圍繞著類似的幾個關鍵字。稍微研究後才發現,這背後其實大概可以歸納為三種 join 演算法。
因此本篇想來聊聊在各大 DB 常見使用的三種 join 演算法。
最近在公司支援另一個採用PostgreSQL當資料庫的專案,雖然從語句面或使用ORM來看的話差異與熟悉的MySQL不大,但是當從併發的角度來看待效能時,才發現其實底層實現鎖的機制大不相同。本篇,我們會拿一個在實際專案中發生的簡化版情境,來介紹MySQL與PostgreSQL併發時底層實現鎖的運作過程。
近期迴響