2016年3月7日 星期一

[MySQL]Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126.

        最近遇到下面這個錯誤,該Table有近三百個欄位,因為這是為了分析來源文字檔所產生Table,來源文字檔欄位數及欄位長度不是我能控制的,還有愈來愈多的跡象


        怎麼解?要先將Innodb改成獨立表空間及barracuda的格式
set global innodb_file_format = barracuda; 
set global innodb_file_per_table = 1;

        然後以DYNAMIC或COMPRESSED格式重建該表
alter table t1 engine=InnoDB ROW_FORMAT=COMPRESSED;
        不要忘記去改my.cnf,以免重啟失效

innodb_file_per_table=1 
innodb_file_format = Barracuda

0 意見:

張貼留言