sql表有没有大小限制

来源:百度知道 编辑:UC知道 时间:2024/06/06 14:52:01
我设计了一张表,有二十来个text字段,并且每个text字段数据有上万个字节。请问表有大小限制吗?每条记录有大小限制吗?
搜索了一下:SQL Server 的每个数据库最多可存储 20 亿个表,每个表可以有 1024 列。表的行数及总大小仅受可用存储空间的限制。每行最多可以存储 8,060 字节。如果创建具有 varchar、nvarchar 或 varbinary 列的表,并且列的字节总数超过 8,060 字节,虽然仍可以创建此表,但会出现警告信息。如果试图插入超过 8,060 字节的行或对行进行更新以至字节总数超过 8,060,将出现错误信息并且语句执行失败。
“每行最多可以存储 8,060 字节。”是什么意思?

8,060 字节,是 SQL Server 中的“数据页”大小限制。

“数据行”是保存在“数据页”中,一个“数据页”可以保存多个“数据行”。如果一行数据超过 8,060 字节,则无法放入“数据页”中,因此保存失败。

text、image 等字段的数据不存在此限制,因为该字段实际上仅把一个指向 text、image 数据的指针保存在“数据页”上,而“数据页”并没有保存 text、image 字段本身的数据(好像是 16 字节长度的指针,记不清了)。

注:不能直接在 text、image 等字段上指定条件搜索,必须使用全文检索或相关函数。检索该类型的字段会严重降低数据库性能,因此不是必须不推荐使用 text、image 等字段。

因为每个字段要先设置好数据类型,
而数据类型是有长度限制的,
所以,字段有长度限制