過去 18 個月,正經吃 MySQL 的團隊聽到的標準建議是:留在 8.4 LTS、9.x Innovation 從遠處看就好、JavaScript 預存函式請等到別人家的線上叢集驗證過再說。上個月,這個建議靜悄悄地過期了。
MySQL 9.7.0 在 2026/4/7 正式上線(GA),隨著各大發行通道在 5 月陸續鋪開,這是 8.4 LTS 之後的第一個全新 MySQL LTS。Oracle 用「LTS」這三個字背書的功能清單裡,有不少是 Postgres 陣營酸了好幾年的,也有幾個連 Postgres 目前都還沒有。
一、這次到底進來了什麼
主角是資料庫內 JavaScript(由 GraalVM 推動),終於從 preview 升級到 LTS 等級。你現在可以直接 CREATE FUNCTION ... LANGUAGE JAVASCRIPT,從任何 SQL 查詢呼叫它。對 PHP / Laravel 團隊來說,過去為了做一些非平凡的字串或數值轉換,要把資料丟到 Node 微服務再丟回來的這趟旅程,現在可以收進一個 query 裡。
JSON Duality 讓你把同一份資料同時投影成關聯式表格和 JSON 文件。對前端是 React 或 Flutter、後端是 Laravel 的專案來說,這代表你可以從一個 SELECT 直接吐出整包巢狀的 API 回傳,不用 Eloquent 的 N+1 隱藏成本,也不需要在寫入端做 MongoDB 風格的反正規化。
動態資料遮罩是我會把它推到所有功能前面的那個——尤其是接案工作。PII(身分證、電話、Email、地址)可以在「授權的當下」就遮起來。Junior 工程師登入 staging 看到的是 ***-****-1234;正式環境的金流服務看到的是真正的值。這以前要 Enterprise Edition 才有。
OpenID Connect 認證讓你用公司現有的 SSO 身分供應商登入 MySQL,不必再把共用服務帳號的密碼放在 .env 裡。
Hypergraph Optimizer 繼續成熟,對多 join 的查詢——典型的 CRM、電商、報表——終於不用再下手寫 hint 才會拿到合理的執行計畫。
二、為什麼 PHP、Laravel、Flutter 團隊要在意
如果你的 stack 是 Laravel + MySQL,三件事立刻會變。第一,你的 service 層會縮——「資料庫做不到,寫個 Job」會變成「寫一段 SQL」。第二,php artisan db:seed 直接灌進 staging 之後可以開遮罩模式,你把 seed dump 交給外包工程師之前不必再手動洗一次。第三,Laravel 13 的官方 AI SDK 加上資料庫內 JavaScript,讓 embedding、分類、評分這些動作可以跟寫入跑在同一個 transaction 裡——沒有最終一致性的空窗,也不會出現 queue worker 死掉、剩下半張表沒分類的慘況。
對 Flutter 團隊來說,JSON Duality 直接解掉我們最常聽到的後端抱怨:「API 回傳的 shape 跟畫面對不上。」你現在可以從資料庫端,按路由把回傳塑形好。
三、這個禮拜可以動的事
不要今天就升正式環境。請按順序做:開一個 9.7 的 container,把最近的 staging dump 倒進去,跑完整套 Pest / PHPUnit,注意 collation 漂移(utf8mb4_0900 預設值有變)以及任何依賴舊 optimizer 計畫順序的程式碼。接著挑一個 join 超過四張表的讀取重查詢,在 hypergraph optimizer 上用 EXPLAIN FORMAT=TREE 比一次。然後寫你的第一個 JavaScript stored function——slug 正規化、電話號碼正規化,任何你現在在 middleware 做的事情——記一下你刪掉了多少 PHP。最後決定你要現在就採用 9.7 LTS,還是再觀望一季。如果你的客戶量主要在 PII 處理或多 join 報表,這個升級會在 6 月底之前回本。
我的觀點
大家在傳的故事是「MySQL 在追上 Postgres」。這沒抓到重點。真正的故事是 Oracle 把這次升級做得很無聊——沒有遷移、沒有另外授權、masking、JavaScript、OIDC 就是直接開起來——所有原本搖擺要不要轉去 PostgreSQL 的 Laravel / Symfony / CodeIgniter 工作室,這一刻少了一個轉的理由。對我們這種獨立網頁工作室來說,這是好消息。我們留得住自己最深的專業,又能交付過去要嘛得多開一個資料庫、要嘛得逼客戶買 Enterprise 授權的功能。
今年會輸的,是把 MySQL 當被動資料儲存的工作室。會贏的——包括很多跟我們同等規模的同業——是把 9.7 當成它現在真正所是的「應用層」來經營的工作室。
資料來源
- MySQL 9.7: First Major LTS Since 8.4 Brings Enterprise Features to Community Edition — InfoQ
- MySQL 9.0 Release Notes — Oracle
- What's New in MySQL 9 — a DBA's Perspective — Bytebase
- MySQL Latest Version — Release History, LTS & EOL — VersionLog
- MySQL — endoflife.date