在 MySQL 数据库中插入大量记录会占用内存


Inserting large amount of records in MySQL database eats up memory

>我在服务器上运行一个脚本,该脚本每分钟插入大约 3000 条记录 ~2kB。服务器的内存似乎被此活动中的数据堵塞了。(20分钟内100MB)

最终,我必须杀死进程(HTTPD和MySQLd),甚至重新启动服务器才能取回内存......

插入大量记录时有什么方法可以节省内存吗?似乎MySQL以某种方式缓存了插入的数据...

谢谢!

关闭MySQL缓存?只需禁用它:(从这里获取)

SET GLOBAL query_cache_size = 40000;   # minimum as docs says
SET SESSION query_cache_type = OFF;

您可以SHOW VARIABLES LIKE 'foo';检查这些值包含的内容。

有更好的方法来提高刀片性能。

首先,您是否有可能每十秒在一次查询中发送这些插入?或类似的东西。这里的想法是向服务器发送更少的查询。

另外,你使用InnoDB吗?该引擎更适合这种类型的 uf 使用。