2012-09-07 51 views
0

我有Mysql数据库的奇怪问题。我使用MySQL的InnoDB存储引擎,我知道与行大小的问题: https://dev.mysql.com/doc/refman/5.1/en/innodb-restrictions.htmlInnoDb的行大小限制Mysql表

这里是我的表的创建语句:

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

看起来,文本的一部分存储在一行中,并达到行限制大小。

看看这个页面 - Bug #25945

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