Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help


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

到網上搜了一下,可能和引擎有關系

於是之前是這個樣子

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

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM