随着大数据时代来临,数据存储量越来越大,对于程序猿来说数据库字段将会变得越来越多,本文章调查了四种数据库对于表字段最大列数上限制的调查,减轻程序猿大佬们的工作量
提示:以下是本篇文章为自身经过调查所得,仅供参考
数据列上限:1017列
调查版本号:MySQL5.6、MySQL8.0等版本
资料所在:
https://dev.mysql.com/doc/refman/5.6/en/column-count-limit.html
数据列上限:1000列
调查版本号:Oracle 11g
资料所在:
https://docs.oracle.com/cd/E11882_01/server.112/e40402/limits003.htm#REFRN0043(官方说明文档)
调查版本号:Oracle 12C、Oracle 18C、Oracle 19C、Oracle 20C
资料所在:
https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/logical-database-limits.html#GUID-685230CF-63F5-4C5A-B8B0-037C566BDA76(官方说明文档)
数据列上限:1600列
调查版本号:PostgreSQL13、PostgreSQL12
资料所在:
https://www.postgresql.org/docs/13/limits.html(官方说明文档)
数据列上限:官方文档中没有确切的数字,Aurora群集卷的大小最多可以增长到64 TB。 表大小的上限是群集卷的大小。 即,Aurora数据库群集中表的最大表大小为64 TiB。
调查版本号:无
资料所在:
https://docs.amazonaws.cn/en_us/AmazonRDS/latest/AuroraUserGuide/Aurora.Overview.StorageReliability.html#aurora-storage-growth(官方说明文档)
提示:这里对调查的这四个数据库进行总结:
注意:如有调查不正确的地方请自行查阅和告知。
数据库
|
版本号
|
数据库表列数上限
|
MySQL
|
MySQL5.6、MySQL8.0
|
1017列
|
Oracle
|
Oracle 11g、Oracle 12C、Oracle 18C、Oracle 19C、Oracle 20C
|
1000列
|
PostgreSQL
|
PostgreSQL13、PostgreSQL12
|
1600列
|
AWS Aurora
|
/
|
Aurora数据库群集中表的最大表大小为64 TiB
|
SQL20亿个表 100万条SQLSERVER2000技术规格 --------------系统技术规格--------------- --每个服务器最多可以允许的SQLSERVER实例个
数
16 --每个实例可拥有的锁个
数
2,147,483,467 --------------
数据库
技术规格-------------- --SQLSERVER的
数据库
大小 1,048,516TB --每个
数据库
...
MySQL
对每个表有4096列的硬限制,但是对于给定的表,有效
最大
值可能会更少。确切的列限制取决于几个因素:
表的
最大
行大小限制了列的
数
量(可能还有大小),因为所有列的总长度不能超过该大小
个列的存储要求限制了给定
最大
行大小内的
列数
。某些
数
据类型的存储要求取决于存储引擎,存储格式和字符集等因素
存储引擎可能会施加其他限制
表列
计
数
的限制。例如, InnoDB每个表的限制为1017列
功能键部分被实现为隐藏的虚拟生成的存储列,因此表索引中的每个功能键部分都计入表的总
列数
限制。
行大小限制
How many fields are OK to have in a
MySQL
table?I have a form to get information from users, it is divided into 6 or 7 unites, but all related to each other. They are about 100 fields.Do you recommend...
USE INFORMATION_SCHEMA;SELECT COUNT(1) FROM COLUMNS WHERE TABLE_SCHEMA='
数据库
名' AND TABLE_NAME='表名'
看具体是什么
数据库
,以
oracle
,
mysql
,sqlserver分别回答。1、
oracle
:1select count(*) from user_tab_cols where table_name='表名';--表名含英文的话应为英文大写字母结果如图:2、
mysql
:1select count(*) from information_schema.COLUMNS where table_name...
最近在开发的时候,遇到一个报错:Can't create tablexxx(errno: 185 "Too many columns")根据英文,意思是表的字段太多了,那么
mysql
的
数
据表最多能有多少列呢?
怀着虔诚的心态打开百度,连着搜了好几...
mysql
一个表最多多少个字段
在
mysql
中,每个
数据库
最多可创建20亿个表,一个表允许定义1024列,每行的
最大
长度为8092字节(不包括文本和图像类型的长度)。当表中定义有varchar、nvarchar或varbinary类型列时,如果向表中插入的
数
据行超过8092字节时将导致Transact-SQL语句失败,并...
SQL Server 的每个
数据库
最多可存储 20 亿个表,每个表可以有 1024 列。表的行
数
及总大小仅受可用存储空间的限制。每行最多可以存储 8,060 字节。如果创建具有 varchar、nvarchar 或 varbinary 列的表,并且列的字节总
数
超过 8,060 字节,虽然仍可以创建此表,但会出现警告信息。如果试图插入超过
select count(*)
from information_schema.COLUMNS
where TABLE_SCHEMA='库名' and table_name='表名'
select table_name,count(*)
from information_schema.COLUMNS
where TABLE_SCHEMA='dbname' GROUP BY table_name order by count(*) de
列计
数
限制
MySQL
对于每个表具有4096个列的硬限制,但给定表的有效
最大
值可能较少。精确的列限制取决于几个因素:
表的
最大
行大小限制列的
数
量(可能是大小),因为所有列的总长度不能超过此大小。请参阅行大小限制
单个列的存储要求限制了适合给定
最大
行大小的
列数
。某些
数
据类型的存储要求取决于存储引擎,存储格式和字符集等因素。请参见
数
据类型存储要求
存储引擎可能会施加限制
表列
计
数
的额外限制。例如, Inn
1.
Oracle
中的table的
列数
最多有1000create or replace procedure test_cols(cols number)asl_sql dbms_sql.varchar2s;l_cursor number;l_rows number;beginl_cursor := dbms_sql.open_cursor;l_sql(1) :='create table cols'...