加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

Mysql实例MySQL 句柄数占用过多的解决方法

发布时间:2020-12-12 01:13:16 所属栏目:MySql教程 来源:网络整理
导读:《Mysql实例MySQL 句柄数占用过多的解决方法》要点: 本文介绍了Mysql实例MySQL 句柄数占用过多的解决方法,希望对您有用。如果有疑问,可以联系我们。 MYSQL数据库 在Windows下安装MySQL,用了官方的配置向导生成了my.ini,本以为很安稳了,谁知十多个小时过去

《Mysql实例MySQL 句柄数占用过多的解决方法》要点:
本文介绍了Mysql实例MySQL 句柄数占用过多的解决方法,希望对您有用。如果有疑问,可以联系我们。

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

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

MYSQL数据库  后来又看到一个设置innodb_flush_log_at_trx_commit

MYSQL数据库  innodb_flush_log_at_trx_commit? (这个很管用)

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

MYSQL数据库  后来设置成了innodb_flush_log_at_trx_commit = 2.

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

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

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

MYSQL数据库  以上就是解决MySQL句柄占用过多的方法,希望能给大家一个参考,了解更多MySQL语法,大家可以关注《MySQL 5.1参考手册》,也希望大家多多支持编程之家PHP.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读