如果引擎是InnoDB / MYISAM,我们可以在mysql表中添加多少列?

时间:2015-09-03 10:17:37

标签: mysql innodb myisam

如果我们在mysql表中使用了InnoDB引擎,那么在一个表中添加了多少列? 如果我们使用了MyISAM引擎,我们可以在一个表中添加多少列? 请告诉我,我们可以在InnoDB和MyISAM引擎中创建多少行?

2 个答案:

答案 0 :(得分:1)

根据MySQL参考手册,每个表的硬限制为4,096列。

检查以下link以获取更多信息。

答案 1 :(得分:1)

每个表的列数< 1000(InnoDB中的1017,5.6.9); 2598(?)为MyISAM。我认为4096的限制是在Handler级别;发动机往往更加严格。

但是......在一个表中有超过几百列通常是"糟糕的架构设计"。解释你的意思;我们可以帮助您重新设计架构。

行数...行数没有限制,只有表格大小:

  • 每个InnoDB表空间64TB(ibdata1或.ibd)。因此,非PARTITIONed表限制为64TB的数据+索引。 PARTITIONed表每个PARTITION有一个表空间。使用非默认的innodb_page_size = 65536(5.7.x),256TB。
  • MyISAM表大小的默认限制为2 ^ 48(256TB)字节。表的硬限制为2 ^ 56字节。 (请参阅myisam_data_pointer_sizeCREATE TABLE

另见More Limits