觀點 · 資訊分享
Cloudflare Hyperdrive 正式支援 MySQL:Workers 連 MySQL 不用改程式,價格跟 Postgres 版一樣
Cloudflare 在 8 月 7 日宣布 Hyperdrive 的 MySQL 支援正式上線:Workers 可連任何 MySQL 資料庫,沿用現有驅動與 ORM,並可快取查詢結果。
- 發布
- 2026-08-07
- 篇幅
- 約 4 分鐘 · 1,633 字
- 結構
- 7 節 + 3 題常見問題
- 標籤

一句話看懂:Cloudflare 的 Hyperdrive 正式支援 MySQL,Workers 連 MySQL 資料庫不用再自己煩惱連線慢的問題,價格和 Postgres 版一樣。

先用白話講:Hyperdrive 是什麼?
想像你的 MySQL 資料庫是一間只開在台北的總店,而 Cloudflare Workers 是遍布全球的分店。每次分店員工要跟總店拿資料,都得先「打電話、報帳號、對暗號」好幾輪才能開始講正事,光是這些寒暄就花掉不少時間。
Hyperdrive 就是替分店找一位專屬櫃台:它先把這些寒暄做完,保持一條長期通話線路(連線池),常問的問題還可以直接用記下來的答案回覆。這次,這位櫃台終於也會講 MySQL 了。
發生什麼事
Cloudflare 在 8 月 7 日的更新日誌宣布:Hyperdrive 的 MySQL 支援正式上線(GA)。官方整理的重點:
- 可以從 Workers 連到任何 MySQL 資料庫
- 省掉連線建立時多餘的網路往返,在全球範圍集中管理連線,並且可以快取查詢結果
- 沿用原本的資料庫驅動程式、ORM 與查詢建構工具,不用改程式
- 價格和 Postgres 版相同
跟以前比差在哪
| 項目 | 以前(沒有 Hyperdrive) | 現在(MySQL 版 GA) |
|---|---|---|
| 連線 | 每次請求都要重新建立到資料庫的連線 | 連線由 Hyperdrive 統一管理與重用 |
| 重複查詢 | 每次都打到資料庫 | 可以快取查詢結果 |
| 程式改動 | — | 沿用現有驅動與 ORM,免改程式碼 |
給開發者的技術細節
官方的範例是用 mysql2 的 Promise API,連線資訊從 Hyperdrive 的綁定(binding)取得:
import { createConnection } from "mysql2/promise";
export default {
async fetch(request, env, ctx) {
const connection = await createConnection({
host: env.HYPERDRIVE.host,
user: env.HYPERDRIVE.user,
password: env.HYPERDRIVE.password,
database: env.HYPERDRIVE.database,
port: env.HYPERDRIVE.port,
disableEval: true, // Workers 相容性需要
});
const [results] = await connection.query("SHOW tables;");
ctx.waitUntil(connection.end());
return Response.json(results);
},
};
- 連線用的
disableEval: true是官方範例特別註明「Workers 相容性需要」的設定 - 目前(8 月 10 日更新的)文件列出的驅動:
mysql2為建議選項,最低版本 3.13.0;mysql最低 2.18.0,並需要 Node.js 相容旗標。這是文件現況,不是公告當天的內容 - 文件也列出 PlanetScale、Azure Database、Google Cloud SQL、AWS RDS 與 Aurora 的連線範例
我的看法
接案時常遇到的中小企業系統,資料庫大多是 MySQL 或 MariaDB。想把這類系統的一部分搬到邊緣運算,最大的疑慮通常是「Workers 連回資料庫太慢、連線數會爆」,Hyperdrive 的 MySQL 支援把這個疑慮拿掉了一半。
不過要提醒:快取查詢結果很好用,但會讓資料變成「可能是舊的」,像庫存、訂單狀態這類不能舊的資料,要清楚知道哪些查詢該快取、哪些不該。另外它只解決連線的距離問題,資料庫本身還是在原本的區域,寫入多的系統不會因此變快。上線前我會先用小流量比對延遲與費用,再決定要不要全面換。
名詞小辭典
- Cloudflare Workers:Cloudflare 提供的無伺服器執行環境,程式會在離使用者近的節點跑。
- 連線池(Connection pooling):事先建好幾條跟資料庫的連線並重複使用,避免每次請求都重新連一次。
- ORM:用程式語言的物件來操作資料庫的工具,不用手寫 SQL。
- GA(Generally Available):正式上線,可以放心用在正式環境。