also can merge multiple tables into a single table. See Section 4.6.6, “myisampack — Generate Compressed, Read-Only MyISAM Tables” . This section describes limits on the number of columns in tables and the size of individual rows. MySQL has hard limit of 4096 columns per table, but the effective maximum may be less for a given table. The exact column limit depends on several factors: The maximum row size for a given table is determined by several factors: If a row containing variable-length columns exceeds the  InnoDB  maximum row size,  InnoDB  selects variable-length columns for external off-page storage until the row fits within the  InnoDB  row size limit. The amount of data stored locally for variable-length columns that are stored off-page differs by row format. For more information, see Section 15.10, “InnoDB Row Formats” . •MySQL includes a  MERGE  library that enables you to handle a collection of  MyISAM  tables that have identical structure as a single  MERGE  table. See Section 16.7, “The MERGE Storage Engine” . •You are using the  MEMORY  ( HEAP ) storage engine; in this case you need to increase the value of the max_heap_table_size  system variable. See Section 5.1.8, “Server System Variables” . •Column Count Limits •Row Size Limits •The maximum row size for a table constrains the number (and possibly size) of columns because the total length of all columns cannot exceed this size. See Row Size Limits. •The storage requirements of individual columns constrain the number of columns that fit within a given maximum row size. Storage requirements for some data types depend on factors such as storage engine, storage format, and character set. See Section 11.7, “Data Type Storage Requirements” . •Storage engines may impose additional restrictions that limit table column count. For example,  InnoDB has a limit of 1017 columns per table. See Section 15.22, “InnoDB Limits” . For information about other storage engines, see Chapter 16,  Alternative Storage Engines . •Functional key parts (see Section 13.1.15, “CREATE INDEX Statement” ) are implemented as hidden virtual generated stored columns, so each functional key part in a table index counts against the table total column limit. •The internal representation of a MySQL table has a maximum row size limit of 65,535 bytes, even if the storage engine is capable of supporting larger rows.  BLOB  and  TEXT  columns only contribute 9 to 12 bytes toward the row size limit because their contents are stored separately from the rest of the row. •The maximum row size for an  InnoDB  table, which applies to data stored locally within a database page, is slightly less than half a page for 4KB, 8KB, 16KB, and 32KB  innodb_page_size  settings. For example, the maximum row size is slightly less than 8KB for the default 16KB  InnoDB  page size. For 64KB pages, the maximum row size is slightly less than 16KB. See Section 15.22, “InnoDB Limits” . •Different storage formats use different amounts of page header and trailer data, which affects the amount of storage available for rows. •For information about  InnoDB  row formats, see Section 15.10, “InnoDB Row Formats” . Row Size Limits Column Count Limits 1743 8.4.7 Limits on Table Column Count and Row Size Limits on Table Column Count and Row Size