Mysql
特性
存储
库上限
官方文档说明了对表的个数没有限制,单一存储引擎InnoDB限制为40亿个。看具体数据库引擎。
表上限
MySQL本身并没有对单表最大记录数进行限制,这个数值取决于你的操作系统对单个文件的限制本身。
表的存储空间大小限制(Storage limits):256TB。
阿里巴巴《Java 开发手册》提出单表行数超过 500 万行或者单表容量超过 2GB。如果三年内业务超过该数值,要考虑分库分表。
行上限
理论上限是2的64次方。实际行数上限还受myisam_data_pointer_size限制,64位的mysql的myisam_data_pointer_size通常是6,即48位,行数是2^48 - 1 = 281474976710655。
列上限
单个表理论上限是4096个列。实际大小还受限于:
1.表的最大行大小限制列的数量(可能是大小),因为所有列的总长度不能超过此大小。请参阅行大小限制
2.单个列的存储要求限制了适合给定最大行大小的列数。某些数据类型的存储要求取决于存储引擎,存储格式和字符集等因素。请参见数据类型存储要求
3.存储引擎可能会施加限制表列计数的额外限制。例如, InnoDB每个表的限制为1017列。请参见对InnoDB表的限制有关其他存储引擎的信息,请参见替代存储引擎
4.每个表都有一个.frm包含表定义的文件。该定义以可能影响表中允许的列数的方式影响此文件的内容。请参见.frm文件结构引起的限制 。
总的来说,还受存储引擎,存储格式和字符集等因素影响。
MariaDB
Michael Widenius