Mysql 如何将188MB MYISAM表放入内存

Mysql 如何将188MB MYISAM表放入内存,mysql,memory,alter,Mysql,Memory,Alter,出于性能原因,我将把一个188MB的表(每天在磁盘上重建)和大约550.000个数据集放入内存表中。每当我尝试这个,我都会遇到堆错误。。。 我的服务器有1.3GB的可用RAM(仅32位4 GB)您是否检查了配置的内存?看看这个: mysql> show variables like "%heap%"; +---------------------+----------+ | Variable_name | Value | +---------------------+--

出于性能原因,我将把一个188MB的表(每天在磁盘上重建)和大约550.000个数据集放入内存表中。每当我尝试这个,我都会遇到堆错误。。。
我的服务器有1.3GB的可用RAM(仅32位4 GB)

您是否检查了配置的内存?看看这个:

mysql> show variables like "%heap%";
+---------------------+----------+
| Variable_name       | Value    |
+---------------------+----------+
| max_heap_table_size | 16777216 |
+---------------------+----------+
1 row in set (0.02 sec)

默认值为16MB。

是-我已经检查过,但临时提升到2GB堆将导致“内存不足”。2014年的MyISAM?那很奇怪。如果性能至关重要,为什么不为此使用不同的数据存储?有很多不同的方法可以解决这个问题,其中大多数都没有像你描述的那样涉及到绝望的措施。我知道-旧系统,mysql 5.1,我确实尝试过这个方法,但不起作用…顺便问一下,在使用mylsq 5.1.x时,应该使用哪个存储引擎?InnoDB,而且这个引擎通常更容易调整。请记住,MySQL 5.5和5.6有显著的性能改进,因此升级可能会解决很多问题。现在切换到MySQL 5.5.36,但仍然使用myisam。我将尝试上面的方法来获得内存中的db。