程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> Mysql 報Row size too large 65535 的緣由及處理辦法

Mysql 報Row size too large 65535 的緣由及處理辦法

編輯:MySQL綜合教程

Mysql 報Row size too large 65535 的緣由及處理辦法。本站提示廣大學習愛好者:(Mysql 報Row size too large 65535 的緣由及處理辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是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 的緣由及處理辦法,願望對年夜家有所贊助,假如年夜家有任何疑問請給我留言,小編會實時答復年夜家的。在此也異常感激年夜家對網站的支撐!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved