国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

Mysql 報Row size too large 65535 的原因及解決方法

2024-07-24 13:09:52
字體:
供稿:網(wǎng)友

報錯信息:Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535

向mysql的表插件一個字段 類型為text時,或修改一個字段類型為text時,報出上面的錯誤。其實(shí)我對這個錯誤的原因理解也不是很深,給出一些我查到的解釋吧

大意是數(shù)據(jù)表中有一個設(shè)定長度為64K的字段索引,當(dāng)表中字段(不知道是字段名字還是什么)不能超過這個長度,65,535所說明的是針對的是整個表的非大字段類型的字段的bytes總合。(網(wǎng)上查到的)

我自己的理解(也不是很清楚了,大家指出來吧):

我的理解跟上查到最后一句話的意思差不多,就是非大字段類型的字段的bytes總和大于64K了,這個字段的bytes總和是什么呢?我還是當(dāng)他理解成字段的名字長總的總和吧。非大字段是指那些字段呢,我覺得是varchar字段類型的字段,他們的名字總和大于64K,超出mysql的檢索大小存儲空間時就會報錯。

varchar我來簡單說下吧,在舊版5版本前varchar 最大存儲字符數(shù)是255 (說法不算科學(xué)有興趣的自己查),在5版后 varchar就是可變長度 ,就是按實(shí)際存儲數(shù)據(jù)的多少去劃分占用的存儲空間,比如varchar類型內(nèi)的數(shù)據(jù)有50個那么它占用的存儲空間可能就是51個 有1個是占位符用于記錄存了多少個字符。(也許不是字段名字占了64k,而是這個字段內(nèi)記錄占位長度的太多了,超過了64k這個值)就是說,你自己看看是不是你數(shù)據(jù)表里用varchar的字段類型用得太多了。

確實(shí)是varchar用得太多了,怎么辦呢,其實(shí)上面報錯的語句就有說明,可以將屬性轉(zhuǎn)為text 或 blobs 。行不行你們自己試下吧。

為什么我的數(shù)據(jù)表上有那么多varchar呢,因?yàn)樗菍?shí)際長度的感覺可以省點(diǎn)存儲空間,如給varchar(300)但我實(shí)際在這個字段存了10個字,那其實(shí)也只是占用了11個字符存儲空間,最大到300個字符。

我的解決方法:

  將表中varchar(N) 中N設(shè)定小于255的屬性的字段,修改屬性為tinytext 。tinytext 在存儲時總是占用255個字符。是固定的占著,最大能保存的字符也只有255個。所以如果varchar(N) 這個N值特別少就可以用tinytext進(jìn)行代替。char這個大家自己考慮下能不能用吧。

以上所述是小編給大家介紹的Mysql 報Row size too large 65535 的原因及解決方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對VeVb武林網(wǎng)網(wǎng)站的支持


注:相關(guān)教程知識閱讀請移步到MYSQL教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 和顺县| 许昌市| 曲麻莱县| 汶川县| 彰武县| 绵竹市| 重庆市| 拉孜县| 文化| 泽普县| 宜章县| 慈利县| 扎兰屯市| 玛曲县| 修武县| 徐汇区| 阳西县| 大兴区| 遂平县| 新源县| 双城市| 洱源县| 海原县| 武强县| 甘泉县| 阿拉尔市| 洛川县| 鄱阳县| 烟台市| 湘西| 黄梅县| 周口市| 彰武县| 筠连县| 山东省| 浠水县| 荣成市| 浮梁县| 无极县| 宁化县| 呈贡县|