更新text字段時出現(xiàn)Row size too large報錯應付措施_MySQL教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
推薦:如何用workbench導出mysql數(shù)據(jù)庫關系圖用workbench導出mysql數(shù)據(jù)庫關系圖的解決方法,需要的朋友請往下閱讀
起因:團購開發(fā)報告說更新時出錯。
更新SQL如下:
復制代碼 代碼如下:www.wf0088.com
UPDATE table_name d SET d.column_name='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
WHERE d.ID=100976;
報錯信息如下:
Error Code : 1118
Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. You have to change some columns to TEXT or BLOBs
疑惑:
更新字段只涉及 column_name字段,且該字段是TEXT類型。
個人之前理解是:
TEXT的內容在 Dynamic的table format下是存在off-page中的,不會占用row size的計算。
Barracuda 對應row_format ( dynamic, compress) ,其中dynamic下text的所有內容都是off-page存放的 (點擊查看)
Antelope 對應row_format (compact, redundant),其中compact下的text是存786B在row中,超過部分存在off-page
而服務器配置是 innodb_file_format = Barracuda
照理說所有table用的都是 dynamic 結構。
但是! 原因如下,摘自文檔:
To preserve compatibility with those prior versions, tables created with the InnoDB Plugin use the prefix format, unless one of ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED is specified (or implied) on the CREATE TABLE command.
也就是說,建表時不顯示指定 row_format = dynamic ,即使 innodb_file_format = Barracuda 表的row-format還是 compact
所以總結為一句話就是:如果某個表的text字段很多建議建表時加上 row_format = dynamic
當然,回過頭來MySQL的報錯也是有誤導性的,bug庫中也對confirm了這個bug(點擊查看),并在5.1.61中優(yōu)化了報錯提示。
分享:mysql手動刪除BINLOG的方法用于刪除列于在指定的日志或日期之前的日志索引中的所有二進制日志。這些日志也會從記錄在日志索引文件
相關MySQL教程:
- MSSQL清空日志刪除日志文件
- 關于數(shù)據(jù)庫中保留小數(shù)位的問題
- 解析mysql與Oracle update的區(qū)別
- mysql 導入導出數(shù)據(jù)庫以及函數(shù)、存儲過程的介紹
- MySQL——修改root密碼的4種方法(以windows為例)
- 解決MYSQL出現(xiàn)Can''t create/write to file ''#sql_5c0_0.MYD''的問題
- 深入理解SQL的四種連接-左外連接、右外連接、內連接、全連接
- 解析:內聯(lián),左外聯(lián),右外聯(lián),全連接,交叉連接的區(qū)別
- mysql出現(xiàn)“Incorrect key file for table”處理方法
- mysql重裝后出現(xiàn)亂碼設置為utf8可解決
- 淺析一個MYSQL語法(在查詢中使用count)的兼容性問題
- 解析MySQL中INSERT INTO SELECT的使用
MySQL教程Rss訂閱編程教程搜索
MySQL教程推薦
- MySQL數(shù)據(jù)庫INSERT、UPDATE、DELETE以及REPLACE語句的用法詳解
- MySql中把一個表的數(shù)據(jù)插入到另一個表中的實現(xiàn)代碼
- Ubuntu 11.04 x64 編譯安裝mysql
- MySQL——修改root密碼的4種方法(以windows為例)
- MySQL筆記之連接查詢詳解
- Mysql高性能備份方案解決數(shù)據(jù)不間斷訪問
- linux下mysql提示mysql deamon failed to start錯誤的解決方法
- MySQL DELETE語法使用詳細解析
- MySQL的安全問題從安裝開始說起
- 解析MYSQL 數(shù)據(jù)庫導入SQL 文件出現(xiàn)亂碼的問題
猜你也喜歡看這些
- Microsoft SQL Server 2008安裝圖解教程(Windows 7)
- MyEclipse 配置SQL Server 2008數(shù)據(jù)庫驅動操作步驟
- 收縮數(shù)據(jù)庫日志文件的方法(僅適用于mssql2005)
- 如何解決MySQL 5數(shù)據(jù)庫連接超時問題
- 客戶端備份與恢復MSSQL Server數(shù)據(jù)庫
- 解讀優(yōu)化SQL Server數(shù)據(jù)庫查詢方法
- 解讀SQL中自己創(chuàng)建函數(shù) 分割字符串
- 解決sql server查詢速度慢11個方法
- 在sqlserver2005中安裝sql server 2000的示例數(shù)據(jù)庫northwind的方法
- 教你2種刪除SQL SERVER數(shù)據(jù)庫日志方法
- 相關鏈接:
- 教程說明:
MySQL教程-更新text字段時出現(xiàn)Row size too large報錯應付措施。