mysql参数
1、内存利用方面
innodb_buffer_pool_size
主要参数,缓存innodb表的索引、数据、插入数据时的缓冲
innodb_buffer_pool_instances
开启多个内存缓存池、实现并行内存读写。
innodb_buffer_pool_chunk_size
块大小、内存大小调整时数据迁移单位是块 =pool_size/pool_instances
innodb_additional_mem_pool_size
存放innodb内部目录,存储数据结构的内存池
2、日志方面
innodb_log_file_size
一个日志组中每个log的大小。影响数据库写入速度、事务大小、异常重启恢复
分配大小原则:日志成员大小加起来与innodb_buffer_pool_size的25%-100%,单个上限为4G,一般总大小控制在2G
innodb_log_files_in_group
指定日志组数量
innodb_log_buffer_size
日志缓冲区大小,处理大量事务可考虑调整为16M
innodb_flush_logs_at_tx_commit
事务的提交方式、控制log刷新到磁盘的方式
默认为1。0,2可以减少磁盘IO,易丢失一秒钟的事务
0:log buffer数据每一秒一次写入到log file中,同时进行文件系统到磁盘的同步,但每个事务的commit不会触发log buffer 到log file的刷新或者文件系统到磁盘的刷新操作(mysql进程崩溃会丢失前一秒数据)
1:每次事务提交的时候将logbuffer中的数据写入logfile,同时触发文件系统到磁盘的同步(不会丢失数据)
2:事务提交会触发log buffer到log file的刷新。但不会触发磁盘文件系统到磁盘的同步,每一秒会有一次文件系统到磁盘的同步操作(操作系统崩溃会丢失前一秒数据)
3、文件IO分配,空间占用
innodb_file_per_table
使每个innodb表,有独立的表空间
innodb_file_io_threads
文件读写io数,windows上起作用,Linux只会等于4
innodb_open_files
限制innodb能打开的idb文件的数量
innodb_data_file_path
指定表数据和索引存储的空间
innodb_data_file_path=/disk1/ibdata1:900M;/disk2/ibdata2:50M:autoextend
innodb_data_home_dir
放置表空间数据的目录
4、其他
innodb_flush_method
innodb与系统打交道的一个IO模型
原则:
windows不用设置
Linux:O_DIRECT直接写入磁盘,禁止系统cache
innodb_max_dirty_pages_pct
脏页百分比
innodb_thread_concurrency
innodb内核中处理线程的数据
5、公共参数
skip_external_locking
避免mysql外部锁定
skip_name_resolve
禁止mysql对外部链接进行dns解析
max_connections
最大链接数
query_cache_size
查询缓存大小,如果表改动频繁、或每次查询都不同,查询缓存会减慢系统性能。可设置为0
sort_buffer_size
connection级参数,排序缓存大小
read_buffer_size
max_allowed_packet
table_open_cache
thread_cache_size
innodb_thread_concurrency
线程并发数,建议设置为cpu内核数*2

浙公网安备 33010602011771号