1.innodb_old_blocks_pct 确定modpoint位置,默认37,(3/8=37%)可以通过这个调整young与old比.
innodb_old_blocks_time:当有大的查询时,可能会将热点数据页从LRU列表中移除,为了避免这个问题可以通过参数innodb_old_blocks_time的修改来实现,该参数表示页读取到mid位置后需要等待多久才会被加入到LRU列表的热端。
2.缓冲区相关参数:
InnoDB Buffer Pool:存储InnoDB数据和索引。 ---innodb_buffer_pool_size redo log buffer:redo日志缓冲区。 ---innodb_log_buffer_size BinLog Buffe:缓存二进制日志的。 --- binlog_cache_size Query Cache:存储查询缓存的。 ---query_cache_size Thread Cache:缓存连接线程的。 ----thread_cache_size Table Open Cache:缓存表文件句柄信息的。 ----table_open_cache Key Buffer:缓存MyISAM存储引擎索引键的。 ----key_buffer_size |
3.线程相关参数:
线程栈信息使用内存(thread_stack) 排序使用内存(sort_buffer_size) Join操作使用内存(join_buffer_size) 顺序读取数据缓冲区使用内存(read_buffer_size) 随机读取数据缓冲区使用内存(read_rnd_buffer_size) 连接信息及返回客户端前结果集暂存使用内存(net_buffer_lenth) 批量插入暂存使用内存(bulk_insert_buffer_size) 临时表使用内存(tmp_table_size) |
4.数据预热相关参数
innodb_buffer_pool_dump_pct --预热数据的百分比.(默认40%) innodb_buffer_pool_dump_now =1 ----采用手工方式把热数据dump到本地磁盘。(默认关闭) innodb_buffer_pool_dump_at_shutdown= 1 --在关闭时把热数据dump到本地磁盘。(5.7.7以后默认是on) innodb_buffer_pool_load_at_startup= 1 ---在启动时把热数据加载到内存。(默认关闭) innodb_buffer_pool_load_now =1 ---采用手工方式把热数据加载到内存。(默认关闭)
|
5.buffer pool
default_storage_engine(默认存储引擎) innodb_data_file_path(ibdata1的文件大小及自增) innodb_buffer_pool_size(缓存池大小) innodb_buffer_pool_instances(缓存池个数) innodb_additional_mem_pool_size(额外内存池的大小) innodb_file_per_table(是否开启独立表空间) innodb_buffer_pool_chunk_size(在线修改) |
关闭数据库的时候设置 innodb_fast_shutdown=1,在关闭数据库的时候,会刷新所有脏页到数据库内。fuzzy checkpoint在数据库运行的时候,进行页面的落盘操作,不过这种模式下,不是全部落盘,而是落盘一部分数据。
6. innodb_buffer_pool其他参数:
事务等待获取资源等待的最长时间,超过这个时间还未分配到资源则会返回应用失败; innodb_autoextend_increment: 系统表空间文件每次扩展的大小 innodb_flush_neighbors={0|1|2} --临阶页 参数2:show variables like '%innodb_flush_method%'; --直接设置其值为O_DIRECT即可. 作用:设置innodb在落盘脏页的时候,绕过操作系统缓存,直接落盘,提高效率. innodb_change_buffering = all --插入缓冲 innodb_doublewrite ---doublewrite innodb_adaptive_hash_index ---hash索引 |
6.redo相关参数
innodb_log_buffer_size --redobuffer大小。默认8M。 文件个数,默认2个。 每个文件的大小。默认值:5242880(5M)。 总的redolog大小。 落盘机制。 |
7.undo相关参数
配置undo目录 innodb_undo_logs = 128 #must >=35.default 128 文件个数(必须大于2) 开启在线回收功能.(5.7默认关闭,8.0默认开启) 单个文件最大值,即回收阀值. innodb_purge_rseg_truncate_frequency = 128 |
8.IO相关参数
1. 参数innodb_write_io_threads 写线程 默认四个,负责数据块的写入 参数innodb_read_io_threads 读线程,默认四个,负责数据块的读取,上面两个参数高并发下,可以设置为8 3.innodb_purge_threads --purge线程个数 落脏个数) innodb_write_io_threads(写IO) innodb_read_io_threads(读IO) innodb_page_cleaners(刷脏频次) 在MySQL5.6中,开启了一个独立的pagecleaner线程来进刷lru list 和flushlist。默认每秒运次1次. 可设置多个page cleaner线程提高脏页刷新效率 ; 1、5.6版本以前,脏页的清理工作交由master线程的; 2、Page cleaner thread是5.6.2引入的一个新线程(单线程),从master线程中卸下bufferpool刷脏页的工作独立出来的线程(默认是启一个线程); 3、5.7开始支持多线程刷脏页; 如果值很大,则需要增加innodb_page_cleaners值,同时增加写线程。 |