In-memory table indices consuming too much memory

I’ve been trying to get a copy of a pre-existing on-disk table running entirely in-memory, but I’m consistently getting “ERROR 1114 (HY000): Table is full” errors while system tools show the system as having plenty of memory free. The machine I’m running this on has 256 GB of RAM, and nothing else running, and I’ve set the tmp_table_size and max_heap_table_size variables appropriately as well as enabled dynamic row formatting (with all fixed format columns coming before variable length ones).

Aside from the error, something else strange is occurring - my on-disk version of said table has 108.7M rows with a data length of 52GB and an index length of 10.1GB, whereas the in-memory version seems to run out of space at 107.3M rows, only 29.4GB of data length, but an index length of 249GB, and I’m not even using any of the indices the on-disk version is!

I’m pretty much at a loss here, so any thoughts would more than appreciated.


Can you provide some more details ? like

  • What mysql/PS and OS versions you are using?
  • How you are creating table in memory? are you using memory engine?
  • If possible can you provide the table structure?
  • It would more help if you can provide the full error log.