Bug #82669 Rows are not limited to 64KB
Submitted: 20 Aug 2016 21:05 Modified: 27 Oct 2016 20:35
Reporter: Rick James Email Updates:
Status: Closed Impact on me:
Category:MySQL Server: Documentation Severity:S3 (Non-critical)
Version:Any OS:Any
Assigned to: CPU Architecture:Any
Tags: innodb, limits, row size

[20 Aug 2016 21:05] Rick James
This statement: "Every table (regardless of storage engine) has a maximum row size of 65,535 bytes." is too strongly worded.  It is on https://dev.mysql.com/doc/refman/5.7/en/column-count-limit.html .

In reality, InnoDB (at least) will store chunks of a row in other places, the details depending on ROW_FORMAT.

This statement, "Different InnoDB storage formats (COMPRESSED, REDUNDANT) use different amounts of page header and trailer data, which affects the amount of storage available for rows", fails to cancel out the firm 64KB limit.

This forum question at http://stackoverflow.com/questions/39031518/mysql-mediumtext-max-row-size ("mysql mediumtext & max row size") points out how confusing the page is.

While you are looking at that page, "InnoDB permits up to 1000 columns." -- Hasn't that been raised to 1017?  See https://dev.mysql.com/doc/refman/5.7/en/innodb-restrictions.html .

This last link covers many of the same issues; perhaps all references to InnoDB should be removed from the page I am complaining about, and change it to "MyISAM-only"?

How to repeat:

Suggested fix:
Reword the sentences mentioned.
Or remove InnoDB references, and make it MyISAM-only?

When the page gets rewritten, my comment of May 2015 can be deleted.
[21 Aug 2016 2:35] Umesh Shastry
Hello Rick,

Thank you for the report and feedback!

[27 Oct 2016 20:35] Daniel Price
Posted by developer:
This section has been revised for 5.5,5.6,5.7,8.0 versions of the reference manual. The InnoDB column limit has been updated. 

The change should appear online soon.

Thank you for the bug report.