Mysql 報Row size too large 65535解決方法
報錯資訊:Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535
向mysql的表外掛一個欄位 型別為text時,或修改一個欄位型別為text時,報出上面的錯誤。其實我對這個錯誤的原因理解也不是很深,給出一些我查到的解釋吧
大意是資料表中有一個設定長度為64K的欄位索引,當表中欄位(不知道是欄位名字還是什麼)不能超過這個長度,65,535所說明的是針對的是整個表的非大欄位型別的欄位的bytes總合。(網上查到的)
我自己的理解(也不是很清楚了,大家指出來吧):
我的理解跟上查到最後一句話的意思差不多,就是非大欄位型別的欄位的bytes總和大於64K了,這個欄位的bytes總和是什麼呢?我還是當他理解成欄位的名字長總的總和吧。非大欄位是指那些欄位呢,我覺得是varchar欄位型別的欄位,他們的名字總和大於64K,超出mysql的檢索大小儲存空間時就會報錯。
varchar我來簡單說下吧,在舊版5版本前varchar 最大儲存字元數是255 (說法不算科學有興趣的自己查),在5版後 varchar就是可變長度 ,就是按實際儲存資料的多少去劃分佔用的儲存空間,比如varchar型別內的資料有50個那麼它佔用的儲存空間可能就是51個 有1個是佔位符用於記錄存了多少個字元。(也許不是欄位名字佔了64k,而是這個欄位內記錄佔位長度的太多了,超過了64k這個值)就是說,你自己看看是不是你資料表裡用varchar的欄位型別用得太多了。
確實是varchar用得太多了,怎麼辦呢,其實上面報錯的語句就有說明,可以將屬性轉為text 或 blobs 。行不行你們自己試下吧。
為什麼我的資料表上有那麼多varchar呢,因為他是實際長度的感覺可以省點儲存空間,如給varchar(300)但我實際在這個欄位存了10個字,那其實也只是佔用了11個字元儲存空間,最大到300個字元。
我的解決方法:
將表中varchar(N) 中N設定小於255的屬性的欄位,修改屬性為tinytext 。tinytext 在儲存時總是佔用255個字元。是固定的佔著,最大能儲存的字元也只有255個。所以如果varchar(N) 這個N值特別少就可以用tinytext進行代替。char這個大家自己考慮下能不能用吧。
以上所述是小編給大家介紹的Mysql 報Row size too large 65535 的原因及解決方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對指令碼之家網站的支援!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2524/viewspace-2805567/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Row size too large (> 8126)解決辦法
- #1118 - Row size too large. The maximum row size for the used table type, not counting BLOBs
- mysql Index column size too large 超過767錯誤解決方案(轉)MySqlIndex
- MySQL資料庫index column size too large. the maximum column size is 767 bytes問題解決MySql資料庫Index
- mysql specified key was too long與Index column size too large. The maximum column size is 767 bytes.MySqlIndex
- MySQL建立表失敗:Index column size too large. The maximum column size is 767 bytesMySqlIndex
- 【解決方法】Dubbo報錯Data length too large,調整payload大小解決
- MySQL 5.7 到 5.6,出現 Index column size too large. The maximum column size is 767 bytesMySqlIndex
- Index column size too large. The maximum column size is 767 bytes.Index
- 1709 - Index column size too large. The maximum column size is 767 bytes.Index
- [Err] 1709 - Index column size too large. The maximum column size is 767 bytes.Index
- mysql5.7 資料匯入5.6 Index column size too large. The maximum column size is 767 bytes.MySqlIndex
- Java程式碼解決ElasticSearch的Result window is too large問題JavaElasticsearch
- node接收圖片報錯 PayloadTooLargeError: request entity too largeError
- [Mark]解決ElasticSearch深度分頁機制中Result window is too large問題Elasticsearch
- 上傳報錯 Status Code: 413 Payload Too Large 請教!
- 解決 Too many symbol filesSymbol
- 解決MySql報錯:1130 - Host ‘xxx‘ is not allowed to connect to this MySQL server的方法MySqlServer
- mysql登入報錯提示:ERROR 1045 (28000)的解決方法MySqlError
- MySQL裡的found_row()與row_count()MySql
- 儲存富文字文字內容太多,提示nginx 414 Request-URI Too Large及tomcat報錯NginxTomcat
- SAP MM ME21N 建立PO時報錯 - Net price in CNY becomes too large – 之原因分析
- ORA-12899: value too large for column ORG_NAME (actual: 145, maximum: 128)
- Ubuntu 解決 Too many open files 問題Ubuntu
- MYSQL單行長度不能超過 65535MySql
- 帝國CMS更新時提示Fatal error: Allowed memory size of的解決方法Error
- Mysql Key Buffer SizeMySql
- linux Too Many Files 問題檢視和解決方法Linux
- 【es】FATAL [circuit_breaking_exception] [parent] Data too large, data for [<http_request>] would beUIExceptionHTTP
- MySQL Binlogging Fails With Writing One Row To The Row-based Binary Log FailedMySqlAI
- File name too long window和linux排查,解決Linux
- SQLyog連線MySQL8.0報2058錯誤的完美解決方法MySql
- DBeaver、Navicat、MySQL高頻報錯及解決方法,此文持續更新MySql
- MySQL 中出現報錯提示: ‘Variable ‘XXX‘ is a read only variable‘的解決方法MySql
- hive使用報錯解決方法Hive
- Nginx的client_header_buffer_size和large_client_header_buffers學習NginxclientHeader
- MySQL ERROR 1040: Too many connectionsMySqlError
- mysql(mariadb)啟動失敗解決方法MySql