4

I was wondering if it is possible to increase the maximum row length of MySQL with InnoDB engine. The current is 8KB.

I would also like to know what enforces this limitation. I do not remember having such a limitation with Oracle 10 or MSSQL 2005.

Thank you!

Timmo
  • 3,142
  • 4
  • 26
  • 43
  • This could help http://stackoverflow.com/questions/15585602/change-limit-for-mysql-row-size-too-large – Kaspi Nov 21 '15 at 08:55

3 Answers3

4

You have to change the inno_db_page_size, check http://www.mysqlperformanceblog.com/2006/06/04/innodb-page-size/ It can be 8K, 16K, 32K or 64K, 16K is the default.

Frank Heikens
  • 117,544
  • 24
  • 142
  • 135
  • I would be crazy start hacking an RDBMS which is going to be used by thousands of people. I already knew that. I thought maybe I could set this through some configuration. I would also like to know what enforces this limitation. – Timmo Feb 04 '11 at 09:04
1

MS SQL Server has this limitation as well. To get around this, you may use LOBs (like CLOB, BLOB, TEXT, etc) since they are not part of the record itself.

Alternatively you may split your table into two tables linked 1:1. Maybe you could give some background what you try to achieve and why your table is that big.

Tim Büthe
  • 62,884
  • 17
  • 92
  • 129
0

This is a restriction on InnoDB tables and cannot be changed. According to the docs:

The maximum row length, except for variable-length columns (VARBINARY, VARCHAR, BLOB and TEXT), is slightly less than half of a database page. That is, the maximum row length is about 8000 bytes.

You will have to think about redesigning your table.

dogbane
  • 266,786
  • 75
  • 396
  • 414