Database-Mysql-关于文件打开数限制
在Mysql中,打開文件數過多會出現too many open files錯誤。
與文件打開數有關的參數:
1、max_connections
最大連接數:
增加該值會增加mysqld 要求的文件描述符的數量。如果服務器的并發連接請求量比較大,建議調高此值,以增加并行連接數量,當然這建立在機器能支撐的情況下,因為如果連接數越多,介于MySQL會為每個連接提供連接緩沖區,就會開銷越多的內存,所以要適當調整該值,不能盲目提高設值。
2、table_open_cache
表高速緩存數量:
當某一連接訪問一個表時,MySQL會檢查當前已緩存表的數量。如果該表已經在緩存中打開,則會直接訪問緩存中的表已加快查詢速度;如果該表未被緩存,則會將當前的表添加進緩存并進行查詢。
table_open_cache用于限制緩存表的最大數目,它的作用就是緩存表文件描述符,如已經緩存的表未達到該值,則會將新表添加進來;若已經達到此值,MySQL會根據緩存表的最后查詢時間、查詢率等規則釋放之前的緩存。
注意:在InnoDB存儲引擎中,表的打開不受該參數限制,因為InnoDB會將其放到數據字典中,即在ibd文件里。
3、open_files_limit
操作系統運行mysqld打開的文件數目,該參數基于系統啟動時指定的值。
有效的open_files_limit 計算公式如下:
備注:如果open_files_limit的值未設置,會使用以上三個值中的最大值作為獲取文件描述符的數量。
這里需要注意的是:
1、在一個已經設置open_files_limit值的系統中,修改操作系統ulimit -n的值是不起作用的;
2、在未設置open_files_limit值的系統中,可以通過修改操作系統ulimit -n的值來完成設置;
3、兩者都需要重啟數據庫來讓配置生效。
總結
以上是生活随笔為你收集整理的Database-Mysql-关于文件打开数限制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 状态空间表示
- 下一篇: oracle11g安装程序闪退,win1