位置: 编程技术 - 正文

MySQL 句柄数占用过多的解决方法(数据库句柄是什么意思)

编辑:rootadmin

推荐整理分享MySQL 句柄数占用过多的解决方法(数据库句柄是什么意思),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mysql句柄是什么意思,mysql句柄是什么意思,mysql语句大全及用法,mysql数据操作语句,sql2008句柄无效,sql句柄无效怎么处理,sql句柄是什么,sql句柄无效怎么处理,内容如对您有帮助,希望把文章链接给更多的朋友!

  在Windows下安装MySQL ,用了官方的配置向导生成了my.ini,本以为很安稳了,谁知十多个小时过去之后,系统响应非常慢,看资源管理器的性能卡,发现句柄数竟然达到了万!怪不得无论使用什么程序都卡得很。

  网上搜索一下,大概是说 innodb_buffer_pool_size 这个默认的8M太大,但我已经skip-innodb了啊。

  后来又看到一个设置innodb_flush_log_at_trx_commit

MySQL 句柄数占用过多的解决方法(数据库句柄是什么意思)

  innodb_flush_log_at_trx_commit (这个很管用)

  抱怨Innodb比MyISAM慢 倍?那么你大概是忘了调整这个值。默认值1的意思是每一次事务提交或事务外的指令都需要把日志写入(flush)硬盘,这是很费时的。特别是使用电池供电缓存(Battery backed up cache)时。设成2对于很多运用,特别是从MyISAM表转过来的是可以的,它的意思是不写入硬盘而是写入系统缓存。日志仍然会每秒flush到硬盘,所以你一般不会丢失超过1-2秒的更新。设成0会更快一点,但安全方面比较差,即使MySQL挂了也可能会丢失事务的数据。而值2只会在整个操作系统挂了时才可能丢数据。

  后来设置成了innodb_flush_log_at_trx_commit = 2。

  重启MYSQL服务,的确好了许多,句柄数最终保持在2万左右,处于稳定状态,其它程序快了许多。

  看来在配置文件中innodb即使skip掉了,也仍然在使用系统中的内存、磁盘IO,看来对于MYSQL的配置还是要手工研究,不能完全依赖于自带的配置工具。

  总结下来,对于innodb类型的库,将innodb_flush_log_at_trx_commit设置成2,能够提高MySQL的性能,解决句柄占用过多的问题。

  

本文链接地址:https://www.jiuchutong.com/biancheng/347553.html 转载请保留说明!

上一篇:MySQL创建数据库的两种方法(MySQL创建数据库字符集和排序规则)

下一篇:Hibernate4在MySQL5.1以上版本创建表出错 type=InnDB

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络