全部產品
Search
文件中心

:在DMS中對資料庫執行SQL時,出現“Row size too large”報錯

更新時間:Jun 30, 2024

問題描述

通過DMS控制台對RDS MySQL或自建MySQL資料庫(ECS自建資料庫或IDC自建資料庫)執行SQL語句時,出現類似如下報錯。

Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs

問題原因

MySQL在建立表時,限制單行長度不能超過65535位元組。無論InnoDB儲存引擎是否支援更大的儲存,都會強制執行該限制,詳情請參見MySQL官方文檔

解決方案

您可以通過如下兩種方法解決此問題:

  • 修改大欄位類型。將表中varchar或char類型的大欄位改為text或blob類型的小欄位。

    1. 登入DMS控制台

    2. 在左側資料庫執行個體地區,展開目標資料庫執行個體,單擊目標資料庫。

    3. 進入SQL Console頁面,按右鍵目標表,選擇編輯表結構

    4. 在編輯表頁面,單擊列資訊頁簽,調整目標列的類型。

  • 縮短大欄位長度。根據實際業務需求,縮短表中varchar或char類型的大欄位長度。

    1. 登入DMS控制台

    2. 在左側資料庫執行個體地區,展開目標資料庫執行個體,單擊目標資料庫。

    3. 進入SQL Console頁面,按右鍵目標表,選擇編輯表結構

    4. 在編輯表頁面,單擊列資訊頁簽,調整目標列的長度。

適用於

  • Data Management

  • 雲資料RDS