转自 https://blog.51cto.com/tongcheng/1710265
以下参数是在mysql-5.6.27中使用,可能mysql版本不同使用方法不一样
1.线程参数
innodb_read_io_threads=6 --innodb存储引擎读线程数,供客户端读取数据,默认值是4
innodb_read_io_threads=7 --innodb存储引擎写线程数,供客户端写入数据,默认值是4
innodb_purge_threads=2 --innodb存储引擎回收purge页线程,清空脏数据,默认值是1
innodb_lru_scan_depth=1024 --控制LRU的可用页的数量,默认值是1024
innodb_max_dirty_pages_pct=75 --innodb缓冲池中的脏页大于75%时,checkpoint将一部分的脏页强制刷新到磁盘,一般是100个脏页
innodb_io_capacity=200 --磁盘IO在吞吐量,当数据量很大时默认刷新100个脏页,合并20个插入缓冲时可能忙不过来,此值可以刷新200个脏页,合并200 X 5%=100个插入缓冲,默认值是200
innodb_adaptive_flushing=on --自动刷新脏页,当innodb_max_dirty_pages_pct值小于75时也可以刷新脏页
innodb_purge_batch_size=300 --每次回收undo页的数量,默认值是300个页
innodb_max_purge_lag = 0 --控制history list的长度,history list是根据事物提交的顺序将undo log进行链接。
binlog_max_flush_queue_time = 0 --用来控制Flush阶段中的等待时间,也就是事物与事物之间的等待时间。
innodb_change_buffering=all --插入缓冲只缓冲哪些语句,选项值有inserts,updates,deletes,purges,all,none等.none表示都不进行缓冲,all表示都进行缓冲.默认值是all
innodb_change_buffer_max_size=25 --插入缓冲大小占整个缓冲池的25%内存大小,最大值是50
innodb_adaptive_hash_index=on --启用自适应哈稀索引(AHI),哈稀索引是一次读取数据,只能等值使用
innodb_page_size=16KB --innodb存储引擎默认页(块)是16KB,可以自己调整,默认区大小是1M
innodb_file_format=Antelope --字段的文件格式(文件格式有Compact,Redudant,Antelope,Compressed,Dynamic)
innodb_file_format_check=ON --检查字段是否支持的文件格式
lower_case_table_names=1 --mysql数据库对表名是否区分大小写,1 表示不区分大小写,0 表示区分大小写
auto-rehash --命令补全功能,只补全库名,表名,字段名.(是mysql客房端参数,定义在[mysql]下面)
foreign_key_checks=0 --关闭外键检查,关闭后导入导出数据的时间变快
old_alter_table=off --创建和删除索引的算法,COPY 表示创建临时表,INPLACE 不需要创建临时表,off默认是INPLACE
innodb_online_alter_log_max_size=128M --记录在创建和删除索引时,将DML语句写入缓存日志,如果有大量的写事物可调大参数
innodb_stats_sample_pages=8 --统计Caridinality(索引散列)时每次采样页的数量,默认值是8
innodb_stats_method=nulls_equal --如何对待索引页的null值记录,nulls_equal NULL视为相等的记录,nulls_unequal NULL视为相等记录或NULL忽略记录,nulls_ignored 忽略null值记录.
innodb_stats_persistent=ON --是否将命令aalyze table计算到的Cardinality值存放到磁盘上
innodb_stats_on_metadata=OFF --命令show table status和show index是否重新需要计算索引到Cardinality值
innodb_stats_persistent_sample_pages=20 --命令analyze table更新Cardinality值时每次采样页的数量,默认值是20
innodb_stats_transient_sample_pages=8 --每次采样的数量,默认值是8
innodb_ft_aux_table=test/fts_a --将test库fts_a表的全文索引信息记录到表中,表名information_schema.INNODB_FT_INDEX_TABLE记录分词信息
innodb_ft_cache_size=31M --全文索引缓存的大小,默认是32M
innodb_optimize_fulltext_only=ON --启用全文索引忧化,删除多余的文档
innodb_ft_num_word_optimize=2000 --每次删除分的数量,默认是2000
innodb_ft_enable_stopword=ON --启用不需要分词的参数
innodb_ft_server_stopword_table=test/fts_a --对不需要分词的word写入列表中,对应的分词在information_scema.INNODB_FT_DEFAULT_STOPWORD表中
innodb_ft_min_token_size=3 --分词word中最小的长度,默认是3
innodb_ft_max_token_size=84 --分词word中最大的长度,默认是84
innodb_autoinc_lock_mode=1 --控制自增长模式,默认值是1
innodb_lock_wait_timeout=50 --锁等待默认是50秒(适用于innodb存储引擎)
innodb_rollback_on_timeout=off --锁表后数据是否回滚,默认不回滚
table_lock_wait_timeout=50 --表锁等待(myisam存储引擎)
slave-skip-errors=错误值 --在主从有错误时可以跳过指定的错误代码值

2.缓冲池参数
innodb_buffer_pool_size=2G --innodb存储引擎缓冲池包括数据页,索引页,插入缓冲,自适应哈稀索引,数据字典,锁信息.myisam只缓存索引文件.默认值134217728字节(128M).
innodb_buffer_pool_instances=8 --innodb的缓冲池个数,与innodb_buffer_pool_size配合使用
innodb_old_blocks_pct=37 --使用LRU(最近最少算法)算法计算缓冲池,缓冲池前面63%为最活跃数据,63%以后为历史数据,最活跃数据命中率高.
innodb_old_blocks_time=100 --数据被读后100s才加入到最活跃缓冲池中
innodb_log_buffer_size=8M --重做日志缓冲大小,不宜设置太大,master thread是每秒同步到磁盘,事物提交同步到磁盘,重做日志空间剩余1/2也同步到磁盘,默认为8M
innodb_use_native_aio=on --开启异步io,默认是开启
innodb_flush_neighbors=1 --开启刷新邻近接页,刷新相邻的脏页,默认开启

3.数据恢复
innodb_fast_shutdown=1 --0表示关闭mysql时完成所有的full purge和merge insterbuffer操作.1表示将缓冲池刷新到磁盘,2表示将所有操作写入日志,下次启动时进行恢复
innodb_force_recover=1 --1表示忽略检查corrupt页,将所有脏页同步到磁盘,2表示阻止主线程运行,3表示不执行事物回滚操作,4表示不执行缓冲插入操作,5表示不查看重做日志,6表示不执行前滚操作
innodb_undo_directory = . --回滚段存放的目录
innodb_undo_logs = 128 --回滚段的数量
innodb_undo_tablespaces = 0 --构成回滚段的文件数量
completion_type=NO_CHAIN --不使用链事物(0 commit与commit work是等价的,1 commit work与commit and chain是等价的,事物提交后自动启动相同隔离级别的事物.2 commit work与commit and release等价,事物提交后自动断开服务器)

4.日志
slow_query_log=on --开启慢查询日志,记录查询较慢的sql语句
slow_query_log_file='文件路径' --存放慢查询文件的路径
long_query_time=2 --慢查询的时间,默认是10秒
log_queries_not_using_indexes=off --记录在查询中没有使用索引的查询,默认不使用索引
log_throttle_queries_not_using_indexes=0 --记录多少行慢查询,0表示无限制
log_output=FILE --指定慢查询日志输出是文件还是表(TABLE)
log_bin=master_bin.log --开启二进制日志
log_bin_index=master_index.log --指定二进日志文件的索引文件
max_binlog_size=1G --每个二进日志的大小,默认值是1G
binlog_cache_size=8MB --二进日志缓存,默认大小32KB
max_binlog_cache_size=128MB --最大二进制日志缓存(show status like'%Binlog_cache_use%' 使用缓存写二进的次数,show status like'%Binlog_cache_disk_use%' 使用临时文件写二进日志的次数)
sync_binlog=1 --事物提交同步到磁盘
binlog_do_db=数据库 --需要同步的数据库(指定数据库写入二进日志)
binlog-ignore-db=数据库 --不需要同步的数据库(忽略数据库写入二进日志)
binlog_format=STATEMENT --二进制日志输出格式,默认是语句模式,还有混合模式(MITEX)和行模式(ROW)
binlog_max_flush_queue_time=0 --控制Flush阶段中等待的时间,默认是0
innodb_support_xa=ON --分布式事务,如果事物未提交发生宕机事物进行回滚
log_slave_updates=ON --将主数据库的二进日志同步到从数据库的二进制日志中
innodb_log_file_size=2G --重做日志文件的大小,默认4GB
innodb_log_files_in_group=3 --重做日志文件组的数量,默认是2
innodb_mirrored_log_groups=1 --重做日志文件的镜像,默认值是1,表示没有镜像
innodb_log_group_home_dir=./ --重做日志文件的路径,./表示在数据目录下
innodb_flush_log_at_trx_commit=1 --事物提交时将重做日志写入到磁盘,0 表示事物提交时不将重做日志写入到磁盘,等master线程每秒刷新,2表示将重做日志异步到磁盘
completion_type=0 --值是0表示事物提交进行下一个事物,值是1就是链事物,当一个事物完成性必须提交,值是2就是事物提交自动会断开与服务器的连接.

4.mysql 5.6新特性
slave_parallel_workers = 4 --开启并行复制,减少复制的延迟,增加slave快速读取中继日志的内容
gtid_mode = on --从 5.6 开始mysql 增加了gtid(Global Transaction Identifiers),开启了这个参数,就在change master to 的时候就无需再指定 MASTER_LOG_FILE 和 MASTER_LOG_POS,而只需要增加auto_master_postition =1 就行了,如开启这个参数需要相应增加--log-slave-updates --enforce-gtid-consistency 这2个参数
延时复制方案:
如果你想slave 延时复制的话,可以把slave 停掉之后,用命令 change master to master_delay=n n 为你想要延时的时间

5.二次写(doublewrite由两部分组成,一部分是内存中的doublewrite buffer,大小为2MB,另一部分是物理磁盘上的共享表空间连续的128个页,大小也是2MB)
mysql> show global status like '%innodb_db%';
+----------------------------+-------+
| Variable_name | Value |
+----------------------------+-------+
| Innodb_dblwr_pages_written | 1 | --一共写了多少个页
| Innodb_dblwr_writes | 1 | --写了多少个页,如果(总数:写入)小于64:1证明写入负载不大
+----------------------------+-------+
2 rows in set (0.00 sec)
mysql>

mysql忧化参数的更多相关文章

  1. MySQL容器化详细教程

    前言:  上篇文章介绍了Docker工具的安装及常用命令使用.本篇文章我们会介绍如何在Docker中运行MySQL实例,可能有的小伙伴会问:为什么要在Docker里运行MySQL呢?因为在Docker ...

  2. MySQL数据库实例参数对比脚本

    如何对比两个MySQL实例的参数情况,生产中常会有这样的需求,最近写了个python脚本,可基本实现该需求. 脚本 #!/usr/bin/python import MySQLdb,sys def f ...

  3. MySQL 各种超时参数的含义

    MySQL 各种超时参数的含义 今日在查看锁超时的设置时,看到show variables like '%timeout%';语句输出结果中的十几种超时参数时突然想整理一下,不知道大家有没有想过,这么 ...

  4. mysql命令行参数(转)

    MySQL命令行参数 Usage: mysql [OPTIONS] [database] //命令方式  -?, --help //显示帮助信息并退出  -I, --help //显示帮助信息并退出  ...

  5. mysql 命令行参数

    MySQL命令行参数 Usage: mysql [OPTIONS] [database] //命令方式  例如: mysql -h${HOSTNAME}  -P${PORT}  -u${USERNAM ...

  6. Mysql常用show命令,show variables like xxx 详解,mysql运行时参数

    MySQL中有很多的基本命令,show命令也是其中之一,在很多使用者中对show命令的使用还容易产生混淆,本文汇集了show命令的众多用法. 详细: http://dev.mysql.com/doc/ ...

  7. MySQL 有输入输出参数的存储过程实例

    1.MySQL 有输入输出参数的存储过程实例 DELIMITER // DROP PROCEDURE IF EXISTS `test`.`p_getvalue` // CREATE PROCEDURE ...

  8. MySql 链接url 参数详解

    最近 整理了一下网上关于MySql 链接url 参数的设置,有不正确的地方希望大家多多指教: mysql JDBC URL格式如下: jdbc:mysql://[host:port],[host:po ...

  9. MySQL复制相关参数详解

    MySQL复制相关参数详解 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.复制相关系统变量 1>.server_id 是必须设置在master和每个slave上的唯一标 ...

随机推荐

  1. css: hide or dispaly div

    <!DOCTYPE html> <html> <head><meta http-equiv="Content-Type" content= ...

  2. Mysql - 读写分离与读负载均衡之Maxscale

    一.概述 常见的高可用方案如MMM和MHA等都将重点放在主库上,一旦主库出现故障,通过这些方案能将主库故障进行转移. 本文将给大家介绍一款由mariadb公司出品的中间件Maxscale,该中间件能实 ...

  3. C# 中的基本数值类型

    在之前的文章中(地址:https://www.vinanysoft.com/c-sharp-basics/introducing/),以 HelloWorld 程序为基础,介绍 C# 语言.它的结构. ...

  4. Angular(06)- 为什么数据变化,绑定的视图就会自动更新了?

    这里提一点,前端三大框架(Angular,React,Vue)的数据驱动来更新视图的原理,即 MVVM 的实现. 为什么数据发生变化,绑定的视图就会刷新了呢? 以下是我的个人理解,仅供参考: 在还是 ...

  5. Geoserver安装

    准备内容 安装环境:win10*64位专业版 安装文件:geoserver-2.15.2 安装步骤 安装JDK 1.安装GeoServer是基于Java的环境,所以需要先装Jdk环境. 2.前往官网下 ...

  6. [转]smtplib.SMTPDataError: (554, b'DT:SPM的异常

    本文转自:https://blog.csdn.net/mapeifan/article/details/82428493 python 发送邮件,出现如下异常 异常如下: smtplib.SMTPDa ...

  7. vue--CRUD

    1. Create this.$http.post("http://localhost:3000/users",newCustomer).then(function (respon ...

  8. VS2017无法打开Razor视图文件提示:引发类型"System.Exception"异常

    背景介绍 由于电脑装了R#(吃内存大户),导致VS2017打开项目慢以及卡顿,因此在扩展和更新这个功能里面将没用的插件关闭了,导致.NET CORE的Razor视图文件打不开(真心是一脸懵逼,关个插件 ...

  9. 一文掌握 Lambda 表达式

    本文将介绍 Java 8 新增的 Lambda 表达式,包括 Lambda 表达式的常见用法以及方法引用的用法,并对 Lambda 表达式的原理进行分析,最后对 Lambda 表达式的优缺点进行一个总 ...

  10. 2019年全国高校计算机能力挑战赛初赛C语言解答

    http://www.ncccu.org.cn 2019年全国高校计算机能力挑战赛分设大数据算法赛,人工智能算法赛,Office高级应用赛,程序设计赛4大赛项 C语言初赛解答 1:编程1 16.现有一 ...