解析 mysql配置参数(23个常用参数)

发布时间:2020-02-23编辑:脚本学堂
本文介绍一些mysql的配置参数,包括skip-name-resolve、myisam_max_sort_file_size、skip_external_locking等,在配置mysql及复制时会用得上。

16,Innodb_rows_read/inserted/updated/deleted
通过以上几个参数,可以很容易地了解当前数据库的应用是以插入更新为主还是以查询操作为主,以及各种类型的 SQL 大致的执行比例是多少。对于更新操作的计数,是对执行次数的计数,不论提交还是回滚都会进行累加

17,Innodb_buffer_pool_pages_data/dirty/free/flushed/latched
包含数据的页
当前的脏页
空页数
要求清空的缓冲池页数
在InnoDB缓冲池中锁定的页数。这是当前正读或写或由于其它原因不能清空或删除的页数

18,Innodb_data_reads/writes/read/written
读写请求次数
读写的总的字节数

19,Innodb_os_log_fsyncs/written
向日志文件完成的fsync()写数量
写入日志文件的字节数

20,Threads_cached/connected/created/running
The number of threads in the thread cache
The number of currently open connections
表示创建过的线程数,如果发现Threads_created值过大的话,表明MySQL服务器一直在创建线程,这也是比较耗资源,可以适当增加配置文件中thread_cache_size值,查询服务
The number of threads that are not sleeping

21,Bytes_received/Bytes_sent
The number of bytes received from all clients
The number of bytes sent to all clients

22,back_log
TCP/IP连接队列的最大值。当MySQL同时有大量连接请求的时候,MySQL会尝试用当前现有的线程处理这些请求,如果处理不过来,MySQL会把连接先放到一个队列里面,然后起新的线程处理。这个过程会很快, 但是并发请求很多的话,需要调高这个值,否则新来的连接请求会被拒绝。在一次压测的时候发现客户端返回大量的“Lost connection to MySQL”, 就是因为back_log的默认值太小导致的。增大这个值会增大CPU负载并消耗更多的内存。默认值:50, 参考设置:200

23,其他(有些是percona的)
innodb_flush_neighbor_pages=0  :针对fusionio或者SSD,因为随机IO足够好,所以关闭此功能
innodb_change_buffering=inserts :(多种,all,none,inserts,deletes,changes,purges)
innodb_adaptive_flushing=1 :默认打开,设定是否允许MySQL服务器根据工作负载动态调整刷写InnoDB buffer pool中的脏页的速率。动态调整刷写速率的目的在于避免出现IO活动尖峰。默认值为ON。作用范围为全局级别,可用于选项文件,属动态变量
innodb_adaptive_hash_index={ON|OFF}
设定是否启用InnoDB的自适应hash索引。基准测试结果显示,自适应hash索引并非对所有工作负载都有益,因此需要根据实际应用场景的测试结果选择更合适的值。此特性默认已启用,可以通过命令行选项--skip-innodb_adaptive_hash_index将其禁用。
作用范围是全局,可用于选项文件,属动态变量。
 

innodb_adaptive_flushing_method=keep_average (native,estimate,keep_average)【 percona】
innodb_adaptive_hash_index_partitions=8 【percona】
innodb_old_blocks_time=1000
innodb_fast_checksum=1  【percona】
innodb_stats_on_metadata=0
innodb_lazy_drop_table=1
innodb_read_ahead="linear"
innodb_use_native_aio=1