技术标签: mysql losemyfuture的博客
从mysql官网可知每个数据表限制列数量为4096,官网也说了一般比这个更小,取决于以下几个因素:
mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.15 |
+-----------+
1 row in set (0.01 sec)
mysql> 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 latin1;
1118 - Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
mysql> 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=MyISAM CHARACTER SET latin1;
1118 - Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
该限制是强制性的,与存储引擎无关即使存储引擎支持更大的行大小。
将上述例子其中一列修改为BLOB或者TEXT试试?
mysql> CREATE TABLE t (a VARCHAR(10000), b VARCHAR(10000),
c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),
f VARCHAR(10000), g TEXT(6000)) ENGINE=MyISAM CHARACTER SET latin1;
Query OK, 0 rows affected (0.08 sec)
mysql> CREATE TABLE t1 (a VARCHAR(10000), b VARCHAR(10000),
c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),
f VARCHAR(10000), g TEXT(6000)) ENGINE=InnoDB CHARACTER SET latin1;
Query OK, 0 rows affected (0.50 sec)
可以看出即使看起来超过最大行大小(65535)字节,依然能创建成功。对于MyISAM:BLOB/TEXT只会占用9~12字节,而对于Innodb则会使用外部页外存储
因此以下创建语句将会成功,因为他刚好达到65535字节(32765 + 2+32766 + 2)
mysql> CREATE TABLE t1
(c1 VARCHAR(32765) NOT NULL, c2 VARCHAR(32766) NOT NULL)
ENGINE = InnoDB CHARACTER SET latin1;
Query OK, 0 rows affected (0.45 sec)
同理下面t2表将会失败
mysql> CREATE TABLE t2
(c1 VARCHAR(65535) NOT NULL)
ENGINE = InnoDB CHARACTER SET latin1;
1118 - Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
mysql> CREATE TABLE t2
(c1 VARCHAR(65533) NOT NULL)
ENGINE = InnoDB CHARACTER SET latin1;
Query OK, 0 rows affected (0.36 sec)
下面的t3将会创建失败,因为对于NULL列需要额外的空间,将会超过65536字节
mysql> CREATE TABLE t3
(c1 VARCHAR(32765) NULL, c2 VARCHAR(32766) NULL)
ENGINE = MyISAM CHARACTER SET latin1;
1118 - Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
mysql> select @@innodb_page_size/1024;
+-------------------------+
| @@innodb_page_size/1024 |
+-------------------------+
| 16.0000 |
+-------------------------+
1 row in set (0.02 sec)
mysql> CREATE TABLE t4 (
c1 CHAR(255),c2 CHAR(255),c3 CHAR(255),
c4 CHAR(255),c5 CHAR(255),c6 CHAR(255),
c7 CHAR(255),c8 CHAR(255),c9 CHAR(255),
c10 CHAR(255),c11 CHAR(255),c12 CHAR(255),
c13 CHAR(255),c14 CHAR(255),c15 CHAR(255),
c16 CHAR(255),c17 CHAR(255),c18 CHAR(255),
c19 CHAR(255),c20 CHAR(255),c21 CHAR(255),
c22 CHAR(255),c23 CHAR(255),c24 CHAR(255),
c25 CHAR(255),c26 CHAR(255),c27 CHAR(255),
c28 CHAR(255),c29 CHAR(255),c30 CHAR(255),
c31 CHAR(255),c32 CHAR(255),c33 CHAR(255)
) ENGINE=InnoDB ROW_FORMAT=DYNAMIC DEFAULT CHARSET latin1;
1118 - Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
文章浏览阅读461次。本次教程用宇宙模拟器space engine 0.980版本教大家如何创建自定义太阳系系统,包括创建恒星,行星,卫星,小行星,彗星等天体,最后教如何制作插件,打包压缩成pak文件。把链接复制到浏览器地址栏上,按回车键就可以看了关于宇宙模拟器Space Engine的天体(星球,星系,星云,星团等)脚本参数,如何创建天体(星球,星系,星云,星团等)的脚本,请看这些教程space engine打包创建..._space engine
文章浏览阅读10w+次,点赞5次,收藏17次。更新了Chrome,发现网页全部打不开了。都显示:“喔唷 崩溃啦”。点击任何按钮,例如,设置,选项,历史记录等,也“喔唷 崩溃啦” 卸载重装也无效解决方案找到 路径C:\Windows\System32\drivers\bd0001.sys删除(没有强制删除工具重命名也行,随便改个名字)重启电脑chrome就正常了原因可能是注册列表被一些卫士类优化工具或杀毒..._为什么googlechrome设置也打不开
文章浏览阅读1.5k次。安装thrift,我是mac机器,mac下使用homebrew安装thrift很方便,具体看另一篇博客。首先的定义接口文件: service HelloWorldService { string sayHello(1:string username)}因为thrift是支持跨平台的,所以这里接口的定义,thrift定义了自己的规范。 然后使用thrift的工具..._thrift调用例子 java
文章浏览阅读261次。我不确定术语“通配符”是否可以解释我的观点,但有时在一些现成的脚本中,我们可以调用一个非定义的函数,如find_by_age(23),其中age可以是映射到数据库表记录的任何其他内容.所以我可以调用find_by_name,find_by_email,find_by_id等等.那么我们怎么能以程序或面向对象的方式做这样的事情呢?解决方法:你正在寻找的术语是魔法.基本上是这样的:class Foo ..._php路径通配符
文章浏览阅读904次。ANR-WatchDog-ohos一个简单的监测程序,可检测到鸿蒙系统的 ANR(Application Not Response-应用程序无响应)错误并引发有意义的异常项目名称:ANR-WatchDog-ohos所属系列:鸿蒙的第三方组件适配移植功能:可检测到鸿蒙系统的ANR错误并引发有意义的异常项目移植状态:全部完成调用差异:无开发版本:sdk5,DevEco Studio2.1 beta3项..._com.github.anrwatchdog.anrerror: application not responding for at least 400
文章浏览阅读441次。赵辉《Visual+C++_MATLAB图像处理与识别实用案例精选》程序代码说明P0201:MATLAB赋值P0202:MATLAB中的for循环P0203:MATLAB中的for循环和if条件P0205:MATLAB图像处理的基本操作P0206:MATLAB高级图像处理操作P0207:根据RGB图像创建一幅灰度图像P0208:二值图像的取反操作P0209:用imshow函数显示图像P0210:在..._matlab命令行检测网络
文章浏览阅读3.1k次。经常会有机友提问,乐视MAX(乐视 X900+)手机支不支持一键刷机?由于奇兔刷机已经支持多达上千款安卓手机一键刷机,所以有时候小编也无法及时回答上来,最简单的办法就是把手机连上奇兔刷机,即可看到手机是否支持一键刷机。一键刷机并非每次都能一次成功,如果一次不成功可以多试几次,刷机失败不会对您的手机造成任何影响。奇兔市场小编给大家分享下乐视MAX(乐视 X900+)一键刷机教程,虽然使用方法很简单,..._乐视x900刷miui10
文章浏览阅读2.5k次,点赞7次,收藏49次。文章目录1.创建数据库与表2. 创建java项目并且导入jar包(buildPath)2.1 创建数据库连接文件 DBhelper.java2.2 创建vo (stu.java), 与数据库一致2.3 创建service (StuService.java)3. 编写功能类 FromDbToExcel.java注意事项:4. 编写功能类 FromExcelToDb.java注意事项5. 效果展示1.创建数据库与表2. 创建java项目并且导入jar包(buildPath)2.1 创建数据库连接文件_mysql导出多张表结构 excel java代码
文章浏览阅读352次。首先介绍阻塞与非阻塞:阻塞是个什么概念呢?比如某个时候你在等快递,但是你不知道快递什么时候过来,而且你没有别的事可以干(或者说接下来的事要等快递来了才能做);那么你可以去睡觉了,因为你知道快递把货送来时一定会给你打个电话(假定一定能叫醒你)。非阻塞忙轮询。接着上面等快递的例子,如果用忙轮询的方法,那么你需要知道快递员的手机号,然后每分钟给他挂个电话:“你到了没?”很明显一般人不会用第二..._epoll kqueue
文章浏览阅读509次。关于西门子PLC modbus通讯与运动控制的应用应用的设备昆仑通态1570gi(15寸)西门子plc smart-st20昆仑通态参数的设置与组态的重点组态软件选用型号1570gi的屏幕设置通讯地址 192.168.190报警参数的配置脚本的编写关于组态过程中遇到的问题由于这是我参加工作自己独立的完成的,这个期间真的是太坎坷了,我来说说我遇到的问题吧脚本应用if和if的嵌套IF THEN IF THEN ENDIFENDIF由于画面中关联着报_plc作为从站 modbus协议和运动控制命令冲突
文章浏览阅读972次。先用一台电脑连接IPSAN管理端口进去配置阵列配置完成后把IPSAN的ISCSI接口连接到服务器网口,man iscsiadm 查看可以查看是否安装了 iscsiadmyum -y install*iscsi* 命令安装iscsiadm然后在服务器上输入:iscsiadm -m discovery -t sendtargets -p 169.254.194.201:3260 (169.254.19..._centos实现ipsan卸载
文章浏览阅读698次。点击上方 "程序员小乐"关注,星标或置顶一起成长后台回复“大礼包”有惊喜礼包!关注订阅号「程序员小乐」,收看更多精彩内容每日英文Tough people aren..._cannot use range access on index 'env_index' due to type or collation conver