InnoDb Mysql表的行大小限制

时间:2012-09-07 06:48:25

标签: mysql innodb

我对Mysql数据库有一个奇怪的问题。我正在使用MySql InnoDb存储引擎,我知道行大小的问题: https://dev.mysql.com/doc/refman/5.1/en/innodb-restrictions.html

这是我的表的创建查询:

CREATE TABLE IF NOT EXISTS `account` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `description` text COLLATE utf8_unicode_ci,
  `testtextarea0` text COLLATE utf8_unicode_ci,
  `testtextarea1` text COLLATE utf8_unicode_ci,
  `testtextarea2` text COLLATE utf8_unicode_ci,
  `testtextarea3` text COLLATE utf8_unicode_ci,
  `testtextarea4` text COLLATE utf8_unicode_ci,
  `testtextarea5` text COLLATE utf8_unicode_ci,
  `testtextarea6` text COLLATE utf8_unicode_ci,
  `testtextarea7` text COLLATE utf8_unicode_ci,
  `testtextarea8` text COLLATE utf8_unicode_ci,
  `testtextarea9` text COLLATE utf8_unicode_ci,
  `testtextarea10` text COLLATE utf8_unicode_ci,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

我在文本字段中插入每个1024个字符的文本,这工作正常,直到“testtextarea9”或“testtextarea10”字段。所以,我只能在一行中插入超过10000个字符,所以你能帮我理解问题以及如何解决它。

根据MySql规范,文字和blob字段不应该计入这个限制,或者我误解了什么?

以下是我从Mysql获得的错误:“1030 - 从存储引擎获得错误139。”

感谢!!!

1 个答案:

答案 0 :(得分:1)

似乎文本的一部分存储在一行中,并且达到了行限制大小。

查看此页面 - Bug #25945

作为一种解决方法 - 尝试将这些数据拆分为某些表。