冷知识:Mysql最大列限制和行限制

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
简介: 这里说的限制分为两种,一种是Mysql的限制,一种是存储引擎的限制,比如Innodb、MyISAM。

一、Mysql列数限制



这里说的限制分为两种,一种是Mysql的限制,一种是存储引擎的限制,比如Innodb、MyISAM。


1.Mysql限制每个表的最大列数为4096列


但是事实上根本不可能到达4096列,因为Mysql对行也有限制,行的总量大小最大为65535,若是行的大小超过这个值,则创建失败,验证如下:

CREATE TABLE t 
(a VARCHAR(10000), 
b VARCHAR(10000),
 c VARCHAR(10000), 
 d VARCHAR(10000), 
 e VARCHAR(10000),
 f VARCHAR(10000), 
 g VARCHAR(6000)
 ) ENGINE=InnoDB CHARACTER SET utf8mb4;


运行截图如下:

be60110dc9524bd1ac71479df1027f89.png


2.InnoDB限制每个表的最大列数为1017列


是的,InnoDB要求列的总数不能超过1017列,我们平时大都是使用InnoDB引擎,所以我们真正的列限制应该是1017列。但是对于行的大小限制却比较宽松,但是Mysql在外面拦着,导致行的最大也只能是65535,所以无论是InnoDB还是MyISAM,他们的行大小最大都是6553517de0cc9f2a447859b34a238db35fb2e.png


二、Mysql行大小限制



这块上面已经说了,这里就总结下:

Mysql限制行大小65535

InnoDB大于65535,但是根据木桶效应,必须也要小于65535


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
SQL 关系型数据库 MySQL
mysql使用default给列设置默认值的问题
mysql使用default给列设置默认值的问题
559 0
|
SQL 关系型数据库 MySQL
6:列属性完整性-MySQL
6:列属性完整性-MySQL
231 0
|
DataWorks 关系型数据库 MySQL
DataWorks产品使用合集之用脚本的方式同步数据到MySQL,怎么指定列作为目标表为唯一行
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
306 0
|
关系型数据库 MySQL
Mysql语句_查询数据百分比、人员年龄、数据排序、添加查询时的列属性、合并查询结果
Mysql语句_查询数据百分比、人员年龄、数据排序、添加查询时的列属性、合并查询结果
238 0
|
存储 关系型数据库 MySQL
MySQL中的列类型之字符串类型总结
MySQL中的列类型之字符串类型总结
1148 1
|
关系型数据库 MySQL 数据库
实时计算 Flink版产品使用问题之如何排除某个列进行同步MySQL数据
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
存储 关系型数据库 MySQL
如何修改MySQL列允许Null?
如何修改MySQL列允许Null?
554 1
如何修改MySQL列允许Null?
|
关系型数据库 MySQL 数据库
如何检查 MySQL 中的列是否为空或 Null?
如何检查 MySQL 中的列是否为空或 Null?
653 1
如何检查 MySQL 中的列是否为空或 Null?
|
数据库 索引 关系型数据库
MySQL设计规约问题之为什么在插入数据时,必须显示指定插入的列属性
MySQL设计规约问题之为什么在插入数据时,必须显示指定插入的列属性
|
存储 关系型数据库 MySQL
深入探索MySQL的虚拟列:发展、原理与应用
深入探索MySQL的虚拟列:发展、原理与应用

推荐镜像

更多