錯誤訊息「Row size Too Large (> 8126)」表示MySQL 表中的一行超出了預設8KB 限制。導致此問題的因素有很多,包括表格列中使用的資料類型。
一個潛在的解決方案是將某些欄位變更為 TEXT 或 BLOB 資料類型,因為這些可以容納更大量的資料。此外,使用 ROW_FORMAT=DYNAMIC 或 ROW_FORMAT=COMPRESSED 還可以透過以更有效的方式儲存資料來幫助減少行大小。
但是,提供的錯誤訊息表明,即使進行了這些修改,行大小仍可能太大。這是因為 InnoDB 儲存引擎將 BLOB 資料的前 768 位元組內聯儲存在行內,進一步限制了行大小。
要解決此問題,請考慮實施以下解決方案:
切換到Barracuda 檔案格式:
innodb_file_per_table=1
- This file format removes the issue of storing BLOB data inline, allowing larger rows to be accommodated.
使用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.
internal_tmp_disk_storage_engine=MyISAM
以上是如何修復 MySQL 的「行大小太大」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!