My database contains three tables having 50k, 50k and 5m rows. All of them are InnoDB. (the largest contains varchar [256]). The size of my database is 214 MB and I received a request information_schema.TABLES(I think this gives the size of the data + index on disk?)
I had 1.5 GB of RAM, and I thought that I would convert the engine of all tables to MEMORY. But when I started to convert the largest table, I got error 1114.
After some research, I found that max_heap_table_size- only 16 MB. So, I installed max_heap_table_sizeand tmp_table_sizein 1GB.
When I tried to convert again, I saw that the memory usage of mysqld.exe goes beyond 1.2 GB and then throws the same error again, even if I convert half the lines! I deleted half of the rows from the largest table and it finally fits in - 700 MB in memory!
Why can't a database of 214 MB even hold more than 4 times the memory?
Is there anything else inside the process that eats memory other than data index +?
Machine: Intel P4 - 1.9 GHz, 1.5 GB RAM, Win7 Ultimate.
user1699872
source
share