Reputation: 33
I've got a strange issue with some memory tables I'm running on RDS. I don't know if this is an issue specific to RDS, mysql 5.1.57, or if it's just PEBKAC on my part but it's been a frustrating afternoon.
No matter what value I give to max_heap_table_size my memory tables are always stuck at a max data length of 9360878. This has been determined using SHOW TABLE STATUS and just by inserting known amounts of data in the tables.
I've tried setting that value in the RDS parameter group (I've tried rebooting even though I set the method to immediate) and I've tried to set the value at the query line using SET. I've tried every value from 16 megabytes to 16 gigabytes and it has no effect on max_data_length.
I've also tried setting max_temp_table_size even though that shouldn't be in play with non-temporary memory engine tables from as I understand it.
Can anyone point me in the right direction? I need the tables to be able to hold about 150M.
Upvotes: 3
Views: 1696
Reputation: 46
Avoid In-Memory or Temporary Tables
Since MySQL does not write in-memory or temporary tables to disk, using these MySQL features will cause problems when trying to use the Point In Time Restore RDS feature. This operation relies on being able to recreate the DB Instance by playing back the operations executed on the database. If during this play back some of the operations rely on information that is not present (since it was never committed to disk) MySQL cannot start up. When MySQL fails to start during this RDS restore operation, RDS will set the DB Instance status to incompatible-restore.
Note: Due to the nature of how MySQL Read Replicas are created, using in-memory or temporary tables can also prevent successful creation of RDS MySQL Read Replicas.
Upvotes: 3