《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.
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/3437.html