《Mysql入門Mysql 報Row size too large 65535 的原因及解決方法》要點:
本文介紹了Mysql入門Mysql 報Row size too large 65535 的原因及解決方法,希望對您有用。如果有疑問,可以聯系我們。
MYSQL數據庫報錯信息:Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535
MYSQL數據庫向mysql的表插件一個字段 類型為text時,或修改一個字段類型為text時,報出上面的錯誤.其實我對這個錯誤的原因理解也不是很深,給出一些我查到的解釋吧
MYSQL數據庫大意是數據表中有一個設定長度為64K的字段索引,當表中字段(不知道是字段名字還是什么)不能超過這個長度,65,535所說明的是針對的是整個表的非大字段類型的字段的bytes總合.(網上查到的)
MYSQL數據庫我自己的理解(也不是很清楚了,大家指出來吧):
MYSQL數據庫我的理解跟上查到最后一句話的意思差不多,就是非大字段類型的字段的bytes總和大于64K了,這個字段的bytes總和是什么呢?我還是當他理解成字段的名字長總的總和吧.非大字段是指那些字段呢,我覺得是varchar字段類型的字段,他們的名字總和大于64K,超出mysql的檢索大小存儲空間時就會報錯.
MYSQL數據庫varchar我來簡單說下吧,在舊版5版本前varchar 最大存儲字符數是255 (說法不算科學有興趣的自己查),在5版后 varchar就是可變長度 ,就是按實際存儲數據的多少去劃分占用的存儲空間,比如varchar類型內的數據有50個那么它占用的存儲空間可能就是51個 有1個是占位符用于記錄存了多少個字符.(也許不是字段名字占了64k,而是這個字段內記錄占位長度的太多了,超過了64k這個值)就是說,你自己看看是不是你數據表里用varchar的字段類型用得太多了.
MYSQL數據庫確實是varchar用得太多了,怎么辦呢,其實上面報錯的語句就有說明,可以將屬性轉為text 或 blobs .行不行你們自己試下吧.
MYSQL數據庫為什么我的數據表上有那么多varchar呢,因為他是實際長度的感覺可以省點存儲空間,如給varchar(300)但我實際在這個字段存了10個字,那其實也只是占用了11個字符存儲空間,最大到300個字符.
MYSQL數據庫我的解決方法:
MYSQL數據庫 將表中varchar(N) 中N設定小于255的屬性的字段,修改屬性為tinytext .tinytext 在存儲時總是占用255個字符.是固定的占著,最大能保存的字符也只有255個.所以如果varchar(N) 這個N值特別少就可以用tinytext進行代替.char這個大家自己考慮下能不能用吧.
MYSQL數據庫以上所述是小編給大家介紹的Mysql 報Row size too large 65535 的原因及解決方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的.在此也非常感謝大家對維易PHP網站的支持!
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/2352.html