2012-09-07 84 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

作爲一種解決方法 - 嘗試將這些數據拆分爲一些表格。