MySQL 行大小太大

标签 mysql innodb

我正在尝试将数据插入到使用 innodb 存储引擎的 MySQL 表中,但出现此错误:

Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. You have to change some columns to TEXT or BLOBs

我理解错误,但我的表几乎只由文本和中文本列组成。 基本上,我试图存储一堆来自可变长度的 Web 服务的 XML 响应。我能够保存这些响应(请求在批处理过程中按顺序发生)直到我到达 col14,其中响应的插入给出了上述错误

如果我无法让它工作,我的备份想法是将 XML 保存在服务器上并将文件位置放入数据库中。

我已经包含了创建表的代码

CREATE TABLE IF NOT EXISTS `qb_results` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `col1` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
  `col2` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `col3` text COLLATE utf8_unicode_ci,
  `col4` text COLLATE utf8_unicode_ci,
  `col5` text COLLATE utf8_unicode_ci,
  `col6` text COLLATE utf8_unicode_ci,
  `col7` mediumtext COLLATE utf8_unicode_ci,
  `col8` mediumtext COLLATE utf8_unicode_ci,
  `col9` mediumtext COLLATE utf8_unicode_ci,
  `col10` mediumtext COLLATE utf8_unicode_ci,
  `col11` mediumtext COLLATE utf8_unicode_ci,
  `col12` mediumtext COLLATE utf8_unicode_ci,
  `col13` mediumtext COLLATE utf8_unicode_ci,
  `col14` mediumtext COLLATE utf8_unicode_ci,
  `col15` mediumtext COLLATE utf8_unicode_ci,
  `col16` mediumtext COLLATE utf8_unicode_ci,
  `col17` mediumtext COLLATE utf8_unicode_ci,
  `col18` mediumtext COLLATE utf8_unicode_ci,
  `updated_time` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=61 ;

我将列更改为编号,因为它们是特定于业务的,并且认为没有必要或不相关地包含它们的实际列名。规范化实际上可以解决问题,但仍然不能解释给定上下文的错误(错误说使用文本列,已经在使用)

最佳答案

我也遇到了同样的问题。请执行下列操作: 设置引擎=MyISAM。 此外,如果您的脚本体积庞大,您可能希望更改脚本的执行时间。 在那种情况下打开PHP的配置文件(windows的php.ini)并设置

max_execution_time=150 //(suppose) you can set it whatever you feel right.

关于MySQL 行大小太大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11042139/

相关文章:

php - mysql使用主键选择最后一个重复记录

php - 如果不存在则创建否则更新表

mysql - 对于为 OAuth 使用创建的 MySQL 表,使用 latin1 而不是 utf8 有什么影响?

Mysql InnoDB性能优化和索引

当表有其他字段时,Mysql 不使用 DATETIME 索引

php - 使用 PHP (PDO) 在 HTML 图像标记中显示来自 mysql 数据库的图像 (blob)

c++ - 包含从 mysql row[x] 构建的固定长度数组的 vector

MySQL Union All - 值优先

java - Java Spring 中不同的 MySQL 引擎

php - 如何在 MySQL 中实现事务安全的随机序列