觀點 · 資訊分享

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#邊緣運算
Cloudflare Hyperdrive 正式支援 MySQL:Workers 連 MySQL 不用改程式,價格跟 Postgres 版一樣

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

Hyperdrive 正式支援 MySQL資訊圖卡:Workers 連 MySQL 免改程式,連線與查詢快取交給 Hyperdrive

先用白話講: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):正式上線,可以放心用在正式環境。

資料來源

常見問題

Hyperdrive 是什麼?
Cloudflare 提供的服務,替 Workers 連接位在特定區域的資料庫:它會省掉連線建立的往返、集中管理連線,也能快取查詢結果,讓回應更快。
我要改程式才能用嗎?
依官方說明不用。你可以沿用現有的驅動、ORM 與查詢建構工具,連線資訊改從 Hyperdrive 的綁定取得即可;官方範例用 mysql2 的 Promise API,並需要設定 disableEval: true。
價格怎麼算?
官方說 MySQL 支援的價格與 Postgres 版相同,詳細費率請看 Hyperdrive 定價頁。
LINE