1. 程式人生 > >MySQL的表上限

MySQL的表上限

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個列的硬限制,但給定表的有效最大值可能較少。精確的列限制取決於幾個因素:

  1. 表的最大行大小限制列的數量(可能是大小),因為所有列的總長度不能超過此大小。請參閱行大小限制

  2. 單個列的存儲要求限制了適合給定最大行大小的列數。某些數據類型的存儲要求取決於存儲引擎,存儲格式和字符集等因素。請參見數據類型存儲要求

  3. 存儲引擎可能會施加限制表列計數的額外限制。例如, InnoDB每個表的限制為1017列。請參見對InnoDB表的限制有關其他存儲引擎的信息,請參見替代存儲引擎

  4. 每個表都有一個.frm包含表定義的文件。該定義以可能影響表中允許的列數的方式影響此文件的內容。請參見.frm文件結構引起的限制

MySQL的表上限