看到itpub 论坛上有关于mysql数据库表中字段个数的讨论 ,讨论mysql字段个数限制在2559个!

自己做了测试,个数对存储引擎不同而不同!innodb 创建到第1001个时会报 Can't create table 'yang.#sql-c6d_421' (errno: 139)的错误!

下面是测试过程~

mysql> select version();

+------------+

| version()  |

+------------+

| 5.5.18-log |

+------------+

1 row in set (0.01 sec)

mysql> use test;

Database changed

情景一:innodb 存储引擎的表!

mysql> show create table yql2 \G;

*************************** 1. row ***************************

Table: yql2

Create Table: CREATE TABLE `yql2` (

`id` int(11) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8

1 row in set (0.00 sec)

ERROR:

No query specified

mysql> EXIT

Bye

使用脚本如下:

[root@rac3 sh]# cat check_mysql_tab_col_num.sh

#!/bin/sh

x=1

while [ $x -le 3000 ]

do

mysql -uroot  -Dtest << EOF >> /root/sh/add_col_log_innodb.log

alter table yql2 add column f$x char(1);

EOF

x=`expr $x + 1`

echo "第 $x 个字段"

done

~

[root@rac3 sh]# sh mysql_tab_col_num.sh

第 2 个字段

第 3 个字段

第 4 个字段

...

第 999 个字段

第 1000 个字段

ERROR 1005 (HY000) at line 1: Can't create table 'yang.#sql-c6d_421' (errno: 139)

执行 到第 1000个字段出错!Can't create table 'yang.#sql-c6d_421' (errno: 139)

注意:错误不是“ERROR 1117 (HY000) at line 1: Too many columns”!

#A table cannot contain more than 1000 columns.

#The internal maximum key length is 3500 bytes, but MySQL itself restricts this to 1024 bytes.

#The maximum row length, except for VARCHAR, BLOB and TEXT columns, isslightly less than half of a database page. That is,the maximum row length is about 8000 bytes.LONGBLOB and LONGTEXT columns must be less than 4GB, and the total row length, including also BLOB and TEXT columns, must be less than 4GB.InnoDB stores the first 768 bytes of a VARCHAR, BLOB, or TEXT column in the row, and the rest into separate pages.

#Although InnoDB supports row sizes larger than 65535 internally, you cannot define a row containing VARCHAR columns with a combined size larger than 65535:

二 myisam 存储引擎的表

mysql> show create table tab2 \G;

*************************** 1. row ***************************

Table: tab2

Create Table: CREATE TABLE `tab1` (

`tid` int(10) NOT NULL

) ENGINE=MyISAM DEFAULT CHARSET=utf8

1 row in set (0.00 sec)

mysql> desc tab2;

+-------+---------+------+-----+---------+----------------+

| Field | Type    | Null | Key | Default | Extra          |

+-------+---------+------+-----+---------+----------------+

| tid   | int(10) | NO   | PRI | NULL    |                |

+-------+---------+------+-----+---------+----------------+

1 rows in set (0.00 sec)

[root@rac3 sh]# vim check_mysql_tab_col_num.sh

#!/bin/sh

x=1

while [ $x -le 3000 ]

do

mysql -uroot  -Dtest << EOF >> /root/sh/add_col_log_myisam.log

alter table tab2 add column f$x char(1);

EOF

x=`expr $x + 1`

echo "第 $x 个字段"

done

[root@rac3 sh]# sh check_mysql_tab_col_num.sh

第 2 个字段

第 3 个字段

......

第 2598 个字段

第 2599 个字段

ERROR 1117 (HY000) at line 1: Too many columns

查看表结构:

mysql> desc yql19;

+-------+---------+------+-----+---------+-------+

| Field | Type    | Null | Key | Default | Extra |

+-------+---------+------+-----+---------+-------+

| tid   | int(10) | NO   |     | NULL    |       |

| f1    | char(1) | YES  |     | NULL    |       |

| f2    | char(1) | YES  |     | NULL    |       |

| f3    | char(1) | YES  |     | NULL    |       |

| f4    | char(1) | YES  |     | NULL    |       |

| f5    | char(1) | YES  |     | NULL    |       |

.....

| f2596 | char(1) | YES  |     | NULL    |       |

| f2597 | char(1) | YES  |     | NULL    |       |

| f2598 | char(1) | YES  |     | NULL    |       |

+-------+---------+------+-----+---------+-------+

2599 rows in set (0.08 sec)

共2599 个字段!

可以参考关于innodb 表物理上存储知识的另一篇文章:innodb没有overflow segment

mysql 字段_【MySql】mysql 字段个数的限制相关推荐

  1. mysql distinct多个字段_深入浅出Mysql索引的那些事儿

    一.索引的作用 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,所以查询语句的优化显然是重中之重. 在数据 ...

  2. 根据excel列动态创建mysql表_根据数据库字段动态生成excel模版下载,上传模版获取数据存入数据库(poi 反射)...

    环境:mysql5.7.28 java8 Spring boot 2.2.4 mybatis-plus3.10 动态:根据需求,用户可以选择对应的字段生成excle模版 下载 poi 反射:poi是e ...

  3. mysql导入数据提前修改字段_复习MySQL③导入数据、检查及修改

    导入数据: 用insert into语句为表插入数据: - insert into 表名(字段1,字段2,-) values -- 导入外部文本文件: - 导入外部txt文件(导入CSV文件分隔符为' ...

  4. 建立唯一索引后mysql策略_【MySQL】MySQL索引背后的之使用策略及优化【转】

    另外很不错的对于索引及索引优化的文章: 索引的使用 示例数据库 为了讨论索引策略,需要一个数据量不算小的数据库作为示例.本文选用MySQL官方文档中提供的示例数据库之一:employees.这个数据库 ...

  5. oracle迁移mysql注意_从MySQL到ORACLE程序迁移的注意事项

    有很多应用项目, 刚起步的时候用MYSQL数据库基本上能实现各种功能需求,随着应用用户的增多,数据量的增加,MYSQL渐渐地出现不堪重负的情况:连接很慢甚至宕机,于是就有把数据从MYSQL迁到ORAC ...

  6. mysql 优化_常用MySQL优化

    1.大批量插入数据优化 (1)对于MyISAM存储引擎的表,可以使用:DISABLE KEYS 和 ENABLE KEYS 用来打开或者关闭 MyISAM 表非唯一索引的更新. ALTER TABLE ...

  7. 阿里云查看mysql版本_查看mysql版本的四种方法及常用命令

    [shengting@login ~]$ mysql -V mysql Ver 14.7 Distrib 4.1.10a, for redhat-linux-gnu (i686) 2:在mysql中: ...

  8. xshell安装mysql步骤_数据库Mysql与禅道安装

    一.Linux上搭建禅道 Mysql 是关系型数据库管理系统 1.下载安装包:将安装包直接解压到/opt目录下,不要 解压到别的目录在拷贝到/opt/,因为这样会导致文件的所有者和读写权限改变 2.解 ...

  9. mysql 知识_关于mysql基础知识的介绍

    一.启动与退出1.进入MySQL:启动MySQL Command Line Client(MySQL的DOS界面),直接输入安装时的密码即可.此时的提示符是:mysql> 或打开终端,输入SQL ...

  10. mysql = 索引_深入MySQL索引

    MySQL索引作为数据库优化的常用手段之一在项目优化中经常会被用到, 但是如何建立高效索引,有效的使用索引以及索引优化的背后到底是什么原理?这次我们深入数据库索引,从索引的数据结构开始说起. 索引原理 ...

最新文章

  1. FreeWheel基于Go的实践经验漫谈——GC是大坑(关键业务场景不用),web框架尚未统一,和c++性能相比难说...
  2. hive相对于oracle的优点,【Hive】Hive面试题
  3. OPenGL中的缓冲区对象
  4. 转载:【opencv入门教程之三】:组件结构
  5. jQuery源码研究01
  6. Python | 程序从列表中删除重复的元素
  7. 数据结构与就算法(选择排序)
  8. “近一个月”、“近三个月”这种查询如何处理更精确?
  9. 第三周 3.14 --- 3.20
  10. quartz 配置 数据源
  11. 竖版1:2500万标准中国地图
  12. rip的metric策略
  13. 关于“档案大数据”的非主流看法
  14. 火狐资产2.6浏览器 下载_通过浏览器体验资产商店!
  15. 【Unity实战100例】Unity屏幕画线,Unity屏幕画图HSJ绘画工具
  16. NYOJ 925 国王的烦恼
  17. 大数据专业应该怎么学习
  18. 二维数组的认识及其表示元素的两种方式
  19. 想从事编程报考专业:计算机技术好,还是软件工程好?
  20. mysql use temporary_一次mysql 优化 (Using temporary ; Using filesort)

热门文章

  1. 【图像融合】基于matlab GUI拉普拉斯金字塔+小波变换+NSCT图像融合【含Matlab源码 870期】
  2. 【数字信号调制】基于matlab GUI BPSK调制+解调【含Matlab源码 644期】
  3. 科技创新 可持续发展 论坛_可持续发展时间
  4. python强制声明变量类型_python声明变量类型吗
  5. k2p 刷breed_斐讯路由器系列「K1-K2-K2P-K2T」-Breed刷入工具v1.1支持XP系统
  6. linux下ftp服务站点,Linux下vsftp服务建立多站点的方法
  7. q萌扫地机器人_为什么买了扫地机器人的到最后都后悔了?
  8. javascript 内存和连等赋值
  9. /etc/rc.local开启自启不执行问题
  10. 如何利用ansible callback插件对执行结果进行解析