一、前言
最近在开发的时候,遇到一个报错:Can't create table
xxx(errno: 185 "Too many columns")
根据英文,意思是表的字段太多了,那么mysql
的数据表最多能有多少列呢?
怀着虔诚的心态打开百度,连着搜了好几篇文章,答案都一模一样:
mysql每个表要求的最大列是1024,每个数据库最多可创建20亿个表等等?????
是的,大家都这么说,但是这个1024
是哪里来的呢,有科学依据(官方承认)吗?博主算了下自己的表,只有1008
个字段左右,很明显是不超过1024
的,但是还是报错了。这么看来,这个1024
列的说法也不过是以讹传讹罢了。下面我们来扒一扒那些官方的说法。
二、mysql官方回答
1、MySQL 5.5官方给出的说法
MySQL
对每个表有4096
列的硬限制,但是对于给定的表,有效最大值可能会更少。确切的列限制取决于几个因素:
(1)表的最大行大小限制了列的数量(可能还有大小),因为所有列的总长度不能超过该大小。
请参阅 行大小限制。
(2)单个列的存储要求限制了给定最大行大小内的列数。某些数据类型的存储要求取决