Ivica
Ivica

Reputation: 805

Row size limit of InnoDb Mysql table

I have weird issue with Mysql database. I am using MySql InnoDb storage engine, and I am aware of problem with row size: https://dev.mysql.com/doc/refman/5.1/en/innodb-restrictions.html

Here is creation query for my table:

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;

And I am inserting text with 1024 characters in each on text fields, and this work fine, until "testtextarea9" or "testtextarea10" fields. So, I am able to insert only a bit over 10000 characters into one row, so can you help me to understand problem and how to fix it.

According to MySql specification text and blob fields shouldn't be counted against this limit, or maybe I misunderstand something?

Here is the error I get from Mysql: "1030 - Got error 139 from storage engine ".

Thanks!!!

Upvotes: 0

Views: 1649

Answers (1)

Devart
Devart

Reputation: 121902

It seems that a part of text is stored in a row, and it reaches row limit size.

Have a look at this page - Bug #25945.

As a workaround - try to split these data to some tables.

Upvotes: 1

Related Questions