首頁 > 資料庫 > mysql教程 > 如何修復 MySQL 的「行大小太大」錯誤?

如何修復 MySQL 的「行大小太大」錯誤?

Susan Sarandon
發布: 2024-12-08 17:46:11
原創
581 人瀏覽過

How Can I Fix MySQL's

調整MySQL 對超大資料的行大小限制

錯誤訊息「Row size Too Large (> 8126)」表示MySQL 表中的一行超出了預設8KB 限制。導致此問題的因素有很多,包括表格列中使用的資料類型。

一個潛在的解決方案是將某些欄位變更為 TEXT 或 BLOB 資料類型,因為這些可以容納更大量的資料。此外,使用 ROW_FORMAT=DYNAMIC 或 ROW_FORMAT=COMPRESSED 還可以透過以更有效的方式儲存資料來幫助減少行大小。

但是,提供的錯誤訊息表明,即使進行了這些修改,行大小仍可能太大。這是因為 InnoDB 儲存引擎將 BLOB 資料的前 768 位元組內聯儲存在行內,進一步限制了行大小。

要解決此問題,請考慮實施以下解決方案:

  1. 切換到Barracuda 檔案格式:

    • 將以下內容加入到my.cnf文件:
      • innodb_file_per_table=1
        登入後複製
    - This file format removes the issue of storing BLOB data inline, allowing larger rows to be accommodated.
    登入後複製
  2. 使用ROW_FORMAT=COMPRESSED:

    • 執行以下查詢來更改表結構:
      • ALTER TABLE table_name
        ENGINE=InnoDB
        ROW_FORMAT=COMPRESSED
        登入後複製
    - This setting reduces the row size by compressing non-key columns, potentially resolving the issue.
    登入後複製

如果上述解決方案仍然無法解決問題,請考慮透過將以下行新增至my.cnf 暫時切換到 MyISAM 引擎來儲存暫存資料檔:
internal_tmp_disk_storage_engine=MyISAM
登入後複製

以上是如何修復 MySQL 的「行大小太大」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板