本文最初与2016年发布在我的个人微信公众号里面,现发布在这里。
有用户问我们为什么下面这个建表语句会执行失败,报错是 "Row size too large ...."
下面我就以这个例子出发讲一讲使用mysql如何有效地建表。本文使用的图片是从网络搜索到的,不是我自己制作的,在此感谢图片的作者和拥有者。
CREATE TABLE bad_table (
col1 varchar(20) NOT NULL DEFAULT '000001',
col2 varchar(100) DEFAULT NULL,
col3 varchar(200) DEFAULT NULL,
col4 varchar(100) DEFAULT NULL,
col5 varchar(200) DEFAULT NULL,
col6 varchar(6) DEFAULT NULL,
col7 varchar(12) DEFAULT NULL,
col8 varchar(10) DEFAULT NULL,
col9 varchar(9) DEFAULT NULL,
col10 varchar(3) DEFAULT NULL,
col11 varchar(10) DEFAULT NULL,
col12 varchar(2) DEFAULT NULL,
col13 varchar(5) DEFAULT NULL,
col14 varchar(1) DEFAULT NULL,
col15 varchar(3) DEFAULT NULL,
col16 decimal(24,6) DEFAULT NULL,
col17 varchar(3) DEFAULT NULL,
col18 decimal(24,6) DEFAULT NULL,
col19 varchar(50) DEFAULT NULL,
col20 varchar(12) DEFAULT NULL,
col21 varchar(12) DEFAULT NULL,
col22 varchar(1) DEFAULT NULL,
col23 varchar(3) DEFAULT NULL,
col24 varchar(3) DEFAULT NULL,
col25 varchar(400) DEFAULT NULL,
col26 int(11) DEFAULT NULL,
col27 varchar(10) DEFAULT NULL,
col28 varchar(1) DEFAULT NULL,
col29 varchar(32) DEF