空闲的mysql数据库是否消耗内存?

时间:2013-03-25 23:31:30

标签: mysql memory

我有一个巨大的mysql数据库,大约5Gb。我正在将InnoDB用于这些数据库表。我注意到PHPMyadmin(MySql在1Gb VPS上运行)变得太慢而且有时没有响应。

由于我根本不使用数据(目前),我将表格从该数据库(我们称之为数据库 A )移动到另一个 B (我每天都在 A 中创建新表格)

现在,数据库A只有300Mb的数据。但是,PHPMyadmin仍然很慢,有时候没有反应。

这是由数据库 B 引起的,即使我没有使用它吗?

编辑:根据“top”,MySql消耗大约20%的服务器内存。但是,使用“free”命令检查,将分配95%的服务器内存。没有其他明显的程序消耗内存。

1 个答案:

答案 0 :(得分:1)

这取决于您的服务器设置(my.cnf)。如果你将mySQL配置为通过基于进程的缓冲区(对于myISAM为key_block_size或对于INNODB为innodb_buffer_pool)消耗20%的内存,那么mysql将不会增长,除非查询使用基于线程的缓冲区并且配置为大。

如果分配了95%的系统内存,它在哪里分配给?文件系统缓存中的内存是多少?另一个过程?

另请注意,当您移动数据库,删除表等时,大多数情况下都会刷新用于mySQL的基于用户的内存,并且缓冲区需要重新填充mysql,因此您正在执行的操作会更多地访问磁盘。 / p>

另一件事。如果PHPmyadmin在新数据库内存上运行缓慢。你的应用程序可能更难以使用另一个数据库来强制mysql,迫使所有来自PHPMyadmin的新查询到达新数据库表的磁盘。

所有这些逻辑都是由my.cnf的变化控制的。