mysql消耗的内存为什么总是逐渐增加

我也遇到了MYSQL应用程序批量插数据时,程序内存一直增长!搞了两天,终于发现,不是My.ini的调参的问题,而是在执行插入后,声明的MySqlCommand对象没有明确析构的问题。public override int ExecuteNonQuery(string commandText){ MySqlConnection conn = null;MySqlCommand sqlcommand = null;try { using (...
mysql消耗的内存为什么总是逐渐增加
我也遇到了MYSQL应用程序批量插数据时,程序内存一直增长!搞了两天,终于发现,不是My.ini的调参的问题,而是在执行插入后,声明的MySqlCommand对象没有明确析构的问题。
public override int ExecuteNonQuery(string commandText)
{
MySqlConnection conn = null;

MySqlCommand sqlcommand = null;
try
{
using (conn = new MySqlConnection(ConnectionString))
{
conn.Open();
sqlcommand = new MySqlCommand(commandText, conn) ;
int res = sqlcommand.ExecuteNonQuery();
return res;
}
}
catch (Exception ex)
{
MessageBox.Show(string.Format("数据库连接或查询失败!\r\n{0}", ex.Message), "错误", MessageBoxButtons.OK,
MessageBoxIcon.Error);
return -1;
}
finally
{
if (sqlcommand != null) sqlcommand.Dispose();//缺少这句话,内存会一直增长!
if (conn != null) conn.Close();
}
}2017-03-04
当然连接数*相关内存参数也是会消耗的,还一些全局的2017-01-19
有 oom 的可能性存在2017-01-20
mengvlog 阅读 8 次 更新于 2025-07-20 15:46:48 我来答关注问题0
  • MySQL是一种流行的开源关系型数据库管理系统,在许多应用程序和网站中使用。然而,由于设计和操作不当,MySQL会占用大量内存,导致系统出现性能问题。本文将介绍如何解决MySQL持续占用内存的问题,包括优化数据库参数、使用缓存和分区技术,还有监控和分析工具。1. 优化数据库参数 MySQL有许多参数可以控制它的内...

  • 一般是睡眠连接过多,严重消耗mysql服务器资源(主要是cpu, 内存),并可能导致mysql崩溃。解决办法 :mysql的配置my.ini文件中,有一项:wait_timeout, 即可设置睡眠连接超时秒数,如果某个连接超时,会被mysql自然终止。wait_timeout过大有弊端,其体现就是MySQL里大量的SLEEP进程无法及时释放,拖累系统性...

  • 连接泄漏、第三方插件或扩展。1、连接泄漏:应用程序没有正确关闭数据库连接,会导致连接泄漏,增加MySQL的内存使用。2、第三方插件或扩展:某些第三方插件或扩展会增加MySQL的内存使用,特别是那些没有经过良好优化的插件。

  • if (sqlcommand != null) sqlcommand.Dispose();//缺少这句话,内存会一直增长!if (conn != null) conn.Close();} }

  • MySQL 5.6版本以后,Performance Schema默认开启,用于收集服务器性能数据,但这也可能导致内存占用增加。解决方法是关闭Performance Schema。在MySQL配置文件的[mysqld]部分添加"performance_schema = off",然后重启MySQL服务。这样做后,内存占用大约降至40MB,这是一个明显的改进。虽然之前在网上找到很多...

檬味博客在线解答立即免费咨询

mySQL相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部