太多的列
MySQL的存储引擎工作时需要在服务器层和存储引擎之间通过行缓冲格式拷贝数据,然后在服务器层将缓冲内容解码成各个列.从行缓冲将编码
过的列转换成行数据结构的操作代价是非常高的. MyISAM的变长行结构和InnoDB的行结构则总是需要转换. MyISAM的定长行结构则与服务器层行结构正好匹配,所以不需要转换.所以说,转换的代价依赖于列的数量
太多的关联
全能的枚举
注意防止过度使用枚举.
例:
create table ... (
country enum('','0','1','2',...,'31')
这种模式的schema设计非常凌乱。这么使用枚举值类型也许在任何支持枚举类型的数据库都是一个有问题的设计方案。