MySQL表锁情况和文件打开数

来源:岁月联盟 编辑:猪头三 时间:2010-11-20

在数据库中,我们需要根据数据库的状态调整一些系统参数,下面为您介绍的是MySQL表锁情况和文件打开数的调整方法,供您参考。

文件打开数(open_files)

  1. mysql> show global status like 'open_files';  
  2. +---------------+-------+  
  3. | Variable_name | Value |  
  4. +---------------+-------+  
  5. | Open_files | 1410 |  
  6. +---------------+-------+  
  7. mysql> show variables like 'open_files_limit';  
  8. +------------------+-------+  
  9. | Variable_name | Value |  
  10. +------------------+-------+  
  11. | open_files_limit | 4590 |  
  12. +------------------+-------+  
  13. 比较合适的设置:Open_files / open_files_limit * 100%  

MySQL表锁情况

  1. mysql> show global status like 'table_locks%';  
  2. +-----------------------+-----------+  
  3. | Variable_name | Value |  
  4. +-----------------------+-----------+  
  5. | Table_locks_immediate | 490206328 |  
  6. | Table_locks_waited | 2084912 |  
  7. +-----------------------+-----------+ 

Table_locks_immediate表示立即释放MySQL表锁数,Table_locks_waited表示需要等待的MySQL表锁数,如果Table_locks_immediate / Table_locks_waited > 5000,最好采用InnoDB引擎,因为InnoDB是行锁而MyISAM是MySQL表锁,对于高并发写入的应用InnoDB效果会好些。示例中的服务器Table_locks_immediate / Table_locks_waited = 235,MyISAM就足够了。