MySQL在数据存储方面的限制

本文详细介绍了MySQL在数据库数量、表数量、表大小、列数量及每行大小等方面的限制,并解释了这些限制如何受到底层操作系统的制约。同时,文章还探讨了不同存储引擎如InnoDB的具体限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MySQL对于支持的数据库的数量,表的数量,表的大小以及表中列的个数和每行允许的大小方面分别都有着自己的一些规定。
MySQL

#数据库的数量
MySQL本身没有数据库数量的限制,具体的数量限制取决于底层操作系统对目录数量的支持程度。

#表的数量限制
MySQL本身没有对表数量的限制,具体的数量限制取决于底层操作系统对文件数量的支持程度。一些存储引擎会有自己的额外限制,InnoDB最大允许有40亿张表。

#表大小的限制
MySQL本身没有对表的大小的限制,具体的大小限制取决于底层操作系统对文件大小的支持程度。现代操作系统中文件系统里文件大小的支持一般都在TB级别。

#表中列数量以及每行大小的限制
硬性指标是每张表最多4096列,但是实际上具体可用的列数受到行的最大尺寸限制,根据每一列的类型,可能小于这个数。

无论存储引擎是什么,每张表中一行的最大尺寸为65535 bytes。以 CHAR(255) CHARACTER SET utf8 定义的列,utf8每个字符最多会有3bytes的需求,所以255 * 3 = 765 bytes会被分配以存储该类型的值,一行最大列数则为 65535 / 765 = 85列。

一些存储引擎有自己的额外限制,InnoDB最大允许1000列,行尺寸需要小于数据库页的一半,大约8000bytes。

##BLOG(binary large object)存储
根据存储引擎的不同,某些数据类型不受相应的最大行尺寸的限制,比如BLOGTEXT

MySQL中提供BLOG(binary large object)类型解决纯粹的二进制数据的存储,TEXT类型解决大文本数据的存储,其存储的信息和字符集关联。

BLOG有4个类型TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB,每个类型有着自己允许的最大数据尺寸

类型大小限制
TINYBLOB127 bytes
BLOB65535 bytes
MEDIUMBLOB16777215 bytes
LONGBLOB4294967295 bytes

TEXT有4个类型TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT,其和对应的BLOG类型有着同样的允许的最大数据尺寸。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值