觀點 · 資訊分享
Cloud Spanner 放寬寫入上限:8 萬次變更改成每條 DML 語句各算,同一交易可連跑多條大型寫入
Google Cloud 在 8 月 11 日更新 Spanner:DML 語句的 80,000 次變更上限(含索引)從整個交易累計改成每條語句各自計算;Mutation API 與 100 MiB 提交上限不變。
- 發布
- 2026-08-12
- 篇幅
- 約 3 分鐘 · 1,548 字
- 結構
- 7 節 + 3 題常見問題
- 標籤

一句話看懂:Google Cloud Spanner 把「單一交易最多 8 萬次變更」的限制,改成「每一條 DML 語句各自最多 8 萬次」,一個交易裡可以連續跑好幾條大型寫入語句了。

先用白話講:這個限制在管什麼?
想像你去銀行辦一個「大型業務」,櫃台規定:一張申請單最多處理 8 萬筆資料的修改(包含相關的索引更新)。以前不管你這張單子裡寫幾個步驟,全部加起來不能超過 8 萬筆,不然整張退件。
新規則改成:單子裡的每個步驟各自不能超過 8 萬筆,步驟之間不用加總。所以你可以一張單子寫好幾個大步驟,只要每一步都在額度內就行。
發生什麼事
依 Google Cloud 的 Spanner 更新日誌,8 月 11 日起:
- 對 DML 語句(INSERT、UPDATE、DELETE 這類改資料的 SQL),Spanner 把 80,000 次變更(mutation,含索引)的上限,從「整個交易累計」改成「每一條語句」
- 因此一個交易可以執行多條 DML 語句,即使它們加起來超過 80,000,只要每一條都沒超過就可以
- 如果是用 Mutation API(不經 SQL、直接送變更的介面),80,000 的限制仍然是套用在同一次提交的所有變更
- 所有交易仍然受 100 MiB 的提交大小上限限制
用數字舉個例子
以下是舉例(非官方數字):假設一個交易要連續做三次大量更新,每次影響 4 萬次變更。
| 做法 | 舊規則 | 新規則 |
|---|---|---|
| 三條 DML 語句,各 4 萬 | 累計 12 萬,超過 8 萬,會被拒絕 | 每條 4 萬,都在額度內,可以 |
| 一條 DML 語句,9 萬 | 超過,被拒絕 | 超過,仍被拒絕 |
| Mutation API 一次送 9 萬 | 超過,被拒絕 | 超過,仍被拒絕 |
給開發者的技術細節
- 影響最大的是資料遷移、批次修正、大量更新這類寫入:以前常得把工作拆成好幾個交易,現在有機會用更少的交易完成
- 但「交易變大」不是沒有代價:交易越大,持有鎖的時間可能越長,與其他交易衝突的機會也會增加。官方更新沒有談到這點,這是一般資料庫交易的常識,請自行評估
- 其他相關上限沒變:100 MiB 的提交大小、Mutation API 每次提交 80,000 次變更(依官方配額文件目前版本)
- 若你的程式有為了避開舊限制而寫的「自動分批」邏輯,官方沒有提到需要修改;放寬限制一般不會讓既有做法失效,但仍建議上線前自己測一次
我的看法
這類「放寬限制」的更新,看似小,卻很實用:很多系統在做資料整理、欄位回填的時候,最煩的就是被某個神秘的上限卡住,只好寫一堆分批程式。把限制從「整個交易」改成「每條語句」,對這類維運工作很友善。
不過我會建議別因為限制放寬就把交易越做越大。大交易一旦失敗,要重來的成本也大;跟線上流量同時跑時,還可能拖慢別的請求。比較穩的做法依然是分批、每批設合理的大小,並且在離峰時間做。放寬的是上限,不是建議值。
名詞小辭典
- Cloud Spanner:Google Cloud 的分散式關聯式資料庫,可以橫向擴充又保有交易能力。
- DML:資料操作語言,包含新增、修改、刪除資料的 SQL 語句。
- Mutation(變更):Spanner 用來計算一次寫入影響多少資料的單位,官方說明這個計數包含索引。
- 交易(Transaction):一組要嘛全部成功、要嘛全部失敗的資料庫操作。
資料來源
常見問題
Mutation(變更)是什麼?
Spanner 用來計算一次寫入影響多少資料的單位,官方說明這個計數包含索引。所以更新一筆有多個索引的資料,變更數會比單看欄位多。
我現在可以用單一 DML 語句更新 20 萬筆嗎?
不行。上限改成「每條語句」之後,單一語句仍然不能超過 80,000 次變更;放寬的是同一個交易裡多條語句不用加總。
用 Mutation API 的人有影響嗎?
沒有放寬。依更新日誌,Mutation API 的 80,000 上限仍套用在同一次提交的所有變更。
接著讀
全部觀點 →Google Cloud Spanner 直連功能正式推出:流量不經 GFE 直達資料庫,官方說可降低延遲Spanner 的「直連(direct connectivity)」在 6 月 23 日進入正式版。符合條件的應用程式,流量可以略過 Google Front End 直接連到 Spanner。要在 GCE 或 GKE 上跑,且有版本與網路條件。閱讀 →Firestore 內建全文搜尋與地理搜尋正式上線:找關鍵字、找附近店家,不用另外架搜尋服務Google Cloud 的 Firestore 全文搜尋與地理搜尋在 10 月 19 日轉為正式版。在 Enterprise 版資料庫建好索引後,就能直接查關鍵字、排除字詞,或找出某個座標方圓幾公尺內的資料。閱讀 →BigQuery 的 AI 函式可以設每日 token 上限了:一行 SQL 燒掉整月預算的風險變小Google 宣布 BigQuery 生成式 AI 函式的 token 配額正式上線,可以替整個專案或每位使用者設每日的輸入、輸出 token 上限,調低立即生效,避免一次查詢就把預算燒光。閱讀 →