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

文件打开数(open_files)

    mysql>showglobalstatuslike'open_files'; +---------------+-------+ |Variable_name|Value| +---------------+-------+ |Open_files|1410| +---------------+-------+ mysql>showvariableslike'open_files_limit'; +------------------+-------+ |Variable_name|Value| +------------------+-------+ |open_files_limit|4590| +------------------+-------+ 比较合适的设置:Open_files/open_files_limit*100%

MySQL表锁情况

    mysql>showglobalstatuslike'table_locks%'; +-----------------------+-----------+ |Variable_name|Value| +-----------------------+-----------+ |Table_locks_immediate|490206328| |Table_locks_waited|2084912| +-----------------------+-----------+

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就足够了。

【编辑推荐】

MySQL查询缓存变量

MySQL慢查询的启用方法

Mysql多表查询的实现

MySQL创建函数问题的处理方法

MySQL存储过程和数据库的联系