MySQL的表上限
阿新 • • 發佈:2018-07-24
file 有關 doc 方式 sam HERE isa point 最小
一、行數的上限
1、官方文檔
There is a limit of (2^32)^2 (1.844E+19) rows in a MyISAM table.
這是MySQL的行數的理論上限,但實際上是達不到的
2、myisam_data_pointer_size
限制
實際行數上限還受myisam_data_pointer_size
限制,64位的mysql的myisam_data_pointer_size
通常是6,即48位,行數是2^48 - 1 = 281474976710655。
3、存儲空間的限制
表的存儲空間大小限制(Storage limits):256TB。
所以只要知道最小一行需要的空間,就能求出最多能存的記錄數。
二、列數的限制
MySQL對於每個表具有4096個列的硬限制,但給定表的有效最大值可能較少。精確的列限制取決於幾個因素:
-
表的最大行大小限制列的數量(可能是大小),因為所有列的總長度不能超過此大小。請參閱行大小限制
-
單個列的存儲要求限制了適合給定最大行大小的列數。某些數據類型的存儲要求取決於存儲引擎,存儲格式和字符集等因素。請參見數據類型存儲要求
-
存儲引擎可能會施加限制表列計數的額外限制。例如, InnoDB每個表的限制為1017列。請參見對InnoDB表的限制有關其他存儲引擎的信息,請參見替代存儲引擎
-
每個表都有一個.frm包含表定義的文件。該定義以可能影響表中允許的列數的方式影響此文件的內容。請參見.frm文件結構引起的限制
MySQL的表上限