我處理的這張表有140列,有大量的VARCHAR和TEXT列,第一眼看到,誤以為是VARCHAR超長的問題。於是把幾個長度較長的字段改為text了,但是依舊報錯,而且並不提示是哪個字段超長了,索性就把表里所有字段全都改成text類型,結果還是報錯。。。。。
到網上搜了一下,可能和引擎有關系
於是之前是這個樣子

改成,主要改了引擎和格式

【原理淺析】根據網上的一些資料,這個問題可能與不同引擎之間使用的存儲格式有關。MyISAM有3種行存儲格式:fixed/dynamic/compressed。InnoDb在MyIASM基礎上新引入了Barracuda。至於不同引擎的默認設置,以及各種存儲格式之間的區別,我也沒有深入研究,有興趣的話可以去了解一下。
