The official MySQL documentation the the MEMORY storage engine covers maximum table size (in MB) but the maximum number of columns that can be defined on a table is not specified.

This question is specifically about the MEMORY storage engine - not InnoDB or MySQL in general.

  • If you need more than a hundred columns, you should rethink the architecture. – Rick James Oct 24 '15 at 21:03

From This MySQL link

There is a hard limit of 4096 columns per table, but the effective maximum may be less for a given table. The exact limit depends on several interacting factors.

  • Every table (regardless of storage engine) has a maximum row size of 65,535 bytes. Storage engines may place additional constraints on this limit, reducing the effective maximum row size.


These are engine-independent MySQL limits. As you say the MEMORY engine specific manual pages do not seem to specify any additional restrictions for size or count.

  • OK, that seems like a reasonable assumption so I have marked this as the answer. It would be great to know for sure though. – Rasmus B Sep 29 '15 at 10:48

Not the answer you're looking for? Browse other questions tagged or ask your own question.