一、前言
最近在開發的時候,遇到一個報錯: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)單個列的存儲要求限制了給定最大行大小內的列數。某些數據類型的存儲要求取決