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

 

posted @ 2018-01-09 09:59  戎马驰骋  阅读(78)  评论(0)    收藏  举报