【问题标题】:Row size limit of InnoDb Mysql tableInnoDb Mysql 表的行大小限制
【发布时间】:2012-09-07 06:48:25
【问题描述】:

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 规范 text 和 blob 字段不应计入此限制,或者我可能误解了什么?

这是我从 Mysql 得到的错误:“1030 - Got error 139 from storage engine”。

谢谢!!!

【问题讨论】:

    标签: mysql innodb


    【解决方案1】:

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

    看看这个页面 - Bug #25945

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-29
      • 2011-02-13
      • 2014-11-26
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多