mysql常用参数汇总

我把mysql比较重要的参数进行了总结,便于自己日后的查询。也希望有其他朋友,对我总结不到位的地方进行指点。

参数文件配置意义
1、skip-name-resolve (禁止dns解析)
配置之后就不能在授权表中使用主机名了,只能使用ip 好处就是解析会耗费资源。

2、skip-symbolic-links(可以减少磁盘搜取次数)
允许你放置数据库目录到一个不同的硬盘,通过设置一个符号链接指向它。这类似于Unix中的符号链接,尽管设置链接的过程不同。
符号链接默认为启用。如果你不需要,使用skip-symbolic-links选项来禁用它

3、skip-external-locking(禁止外部锁定)
当外部锁定(external-locking)起作用时,每个进程若要访问数据表,则必须等待之前的进程完成操作并解除锁定。由于服务器访问数据 表时经常需要等待解锁,因此在单服务器环境下external locking会让MySQL性能下降。所以在很多Linux发行版的源中,MySQL配置文件中默认使用了skip-external-locking 来避免external locking。

4、skip-slave-start( slave复制进程不随mysql启动而启动
可能会造成主从数据不一致。

5、table_open_cache (打开表缓冲)
可以减少表反复需要打开,从而减少资源消耗。
#############connect############
6、back-log(并发连接数)
back_log标记MySQL的并发连接数。在MySQL主线程短时间内收到大量连接请求时会涉及back_log ,然后主线程在一段时间(或者瞬间)后检查连接数,并启动新线程。back_log 的值表示:MySQL(处理大量请求时,由于满负荷)暂时停止回复新请求前能够堆放的请求数。如果用户希望短时间内有更大的连接数,应该增大back_log 的值。

7、max_connections(最大连接数,用户数)

8、max_connect_errors(最大错误连接数)
一个ip用户连接失败数据库的最大次数。

9、open_files_limit(打开文件数)
lsof -p 27732 | wc -l 这个可以看系统打开进程数。
该参数用来控制mysqld进程可以使用的文件描述符。如果你发现mysql报Too many open files错误,说明应该增加该参数值。该参数的最大值理论上是最大的非负整数,但是实际上这个最大值通常跟我们使用的平台有关。如果需要的文件描述符无法分配,mysqld会在error log中写入告警日志。
##############timeout###########
10、connect-timeout( 等待一个连接响应的时间
获取MySQL连接是多次握手的结果,除了用户名和密码的匹配校验外,还有IP->HOST->DNS->IP验证,任何一步都可能因为网络问题导致线程阻塞。为了防止线程浪费在不必要的校验等待上,超过connect_timeout的连接请求将会被拒绝。
总结:就是客户要连接我mysql,但是连接操作的时间超时了,这个连接我就不连了。

11、wait-timeout( 服务器关闭交互式连接前等待活动的秒数。
你连接数据库执行操作完成之后一直处于sleep状态也不能持续占用连接线程。所以这个参数是让处于空闲状态下的非交互连接超时就断开的参数。

12、interactive-timeout( 服务器关闭交互式连接前等待活动的秒数
这个参数是让处于空闲状态下的交互连接超时就断开的参数。


13、slave-net-timeout (主从连接超时等待时间)
mysql主从复制时,master和slave之间的网络中断,但是master和slave都没有察觉,slave会等待slave_net_timeout时间后(默认3600s),才能认为网络出现故障,然后才会重连并且追赶这段时间主从的数据。

14、net_read_timeout (活跃的读用户连接超时)
即使连接没有处于sleep状态,即客户端忙于计算或者存储数据,MySQL也选择了有条件的等待。在数据包的分发过程中,客户端可能来不及响应 (发送、接收、或者处理数据包太慢)。为了保证连接不被浪费在无尽的等待中,MySQL也会选择有条件(net_read_timeout和 net_write_timeout)地主动断开连接。

15、net_write_timeout (活跃的写用户连接超时)

16、net_retry_count (读操作中断,尝试连接次数)
连接中断,尝试n次之后就放弃连接

17、net_buffer_length (连接缓冲和结果缓冲大小。)
mysqldump时会用到次参数,如果你想让他变快,可以把这个参数调整大,这样导入语句的速度就会变快。



18、max_allowed_packet ( 客户端/服务器之间通信的缓存区的最大大小
这个值是是net_buffer_length的最大大小。

################# cache #############
19、 table_open_cache ( 表描述符缓存大小
可减少文件打开/关闭次数,可以缓存表描述符,这样就不会因为反复打开关闭表所消耗过多的性能了。

20、thread_stack (单个连接可以使用的内存量)
每个连接被创建的时候,mysql分配给它的内存.这个值一般认为默认就可以应用于大部分场景了,除非必要非则不要动它.

21、thread_cache_size (线程缓存大小)
服务器线程缓存这个值表示可以重新利用保存在缓存中线程的数量,当断开连接时如果缓存中还有
空间,那么客户端的线程将被放到缓存中,如果线程重新被请求, 那么请求将从缓存中读取,如果缓存中
是空的或者是新的请求,那么这个线程将被重新创建,如果有很多新的线程,增加这个值可以改善系统
性能.通过比较 Connections 和 Threads_created 状态的变量,可以看到这个变量的作用

22、thread_concurrency(同时运行的线程的数据)
设置 thread_concurrency 的值的正确与否, 对 mysql 的性能影响很大, 在多个 cpu(或多核)
的情况下, 错误设置了 thread_concurrency 的值, 会导致 mysql 不能充分利用多 cpu(或多核),
出现同一时刻只能一个 cpu(或核)在工作的情况。thread_concurrency 应设为 CPU 核数的 2 倍.
比如有一个双核的 CPU, 那么 thread_concurrency 的应该为 4; 2 个双核的 cpu,
thread_concurrency 的值应为 8

23、query_cache_size(查询缓冲大小)
这个是把查询的结果集,进行缓存,一样的sql语句再次查询的时候就会直接把缓存的结果集给他。但是这个值实际上真不好用,因为只要你两次访问之间那个表有任何变动,都会导致缓存的结果集失效。所以在增删改多的情况下这个参数设置很小或者不设置。

24、query_cache_limit(不缓存查询大于该值的结果)
只有小于此设定值的结果才会被缓冲
# 此设置用来保护查询缓冲,防止一个极大的结果集将其他所有的查询结果都覆盖.

25、query_cache_min_res_unit (查询缓存分配的最小块大小)
默认是 4KB,设置值大对大数据查询有好处,但如果你的查询都是小数据查询,就容易造成内存碎片
和浪费
#查询缓存碎片率 = Qcache_free_blocks / Qcache_total_blocks * 100%
#如果查询缓存碎片率超过 20%,可以用 FLUSH QUERY CACHE 整理缓存碎片,或者试试减小
query_cache_min_res_unit,如果你的查询都是小数据量的话。
#查询缓存利用率 = (query_cache_size – Qcache_free_memory) / query_cache_size *
100%
#查询缓存利用率在 25%以下的话说明 query_cache_size 设置的过大,可适当减小;查询缓存利用
率在 80%以上而且 Qcache_lowmem_prunes > 50 的话说明 query_cache_size 可能有点小,要
不就是碎片太多。
#查询缓存命中率 = (Qcache_hits – Qcache_inserts) / Qcache_hits * 100%

26、default-time-zone (服务器时区)

27、character-set-server (server 级别字符集)

28、default-storage-engine (默认存储)

29、tmp_table_size (临时表大小)
如果超过该值,则结果放到磁盘中
内部(内存中)临时表的最大大小
# 如果一个表增长到比此值更大,将会自动转换为基于磁盘的表.
# 此限制是针对单个表的,而不是总和.

30、max_heap_table_size (内存表最大值)
独立的内存表所允许的最大容量.
# 此选项为了防止意外创建一个超大的内存表导致永尽所有的内存资源.

31、log-bin (打开二进制日志功能)
log-bin = mysql-bin #这些路径相对于 datadir
在复制(replication)配置中,作为 MASTER 主服务器必须打开此项
# 如果你需要从你最后的备份中做基于时间点的恢复,你也同样需要二进制日志.

32、log-bin-index (二进制名字吧)
log-bin-index = mysql-bin.index

33、relay-log (开启中继日志)
relay-log = relay-log

34、 relay_log_index (中继日志名字)
relay_log_index = relay-log.index

35、log-warnings (打印错误日志)
log-warnings = 1

36、log-error (错误日志位置)

37、log-output ( 指定了慢查询输出的格式)

38、slow_query_log (开启慢日志)

39、long-query-time (多慢的查询语句会记录到慢日志中)
记录慢速查询. 慢速查询是指消耗了比 “long_query_time” 定义的更多时间的查询.
# 如果 log_long_format 被打开,那些没有使用索引的查询也会被记录.
# 如果你经常增加新查询到已有的系统内的话. 一般来说这是一个好主意,

40、slow_query_log_file (慢日志路径)

41、general_log (开启通用日志)

42、general_log_file (文本格式路径)

43、max_binlog_size (单个二进制日志最大量)

44、max_relay_log_size (单个中继日志最大量)

45、relay-log-purge (开启中继日志)

46、expire_logs_days (超时的二进制将被删除)

47、binlog_cache_size (二进制缓冲大小)session级别
111. # 在一个事务中 binlog 为了记录 SQL 状态所持有的 cache 大小
# 如果你经常使用大的,多声明的事务,你可以增加此值来获取更大的性能.
# 所有从事务来的状态都将被缓冲在binlog缓冲中然后在提交后一次性写入到binlog中
# 如果事务比此值大, 会使用磁盘上的临时文件来替代.
# 此缓冲在每个连接的事务第一次更新状态时被创建

48、replicate-wild-ignore-table (复制时要忽略的库和表)
#############myisam引擎参数##########
49、key_buffer_size (索引的高速缓冲池)
key_buffer_size 指定用于索引的缓冲区大小,增加它可得到更好的索引处理性能。
对于内存在 4GB 左右的服务器该参数可设置为 256M 或 384M。
注意:该参数值设置的过大反而会是服务器整体效率降低!
119. # 关键词缓冲的大小, 一般用来缓冲 MyISAM 表的索引块.
# 不要将其设置大于你可用内存的 30%,
# 因为一部分内存同样被 OS 用来缓冲行数据
# 甚至在你并不使用MyISAM 表的情况下, 你也需要仍旧设置起 8-64M 内存由于它同样会被内部临
时磁盘表使用.

50、sort_buffer_size (排序缓冲区大小)
查询排序时所能使用的缓冲区大小。排序缓冲被用来处理类似 ORDER BY 以及 GROUP BY 队列所引
起的排序。# 一个用来替代的基于磁盘的合并分类会被使用
# 查看 “Sort_merge_passes” 状态变量. 在排序发生时由每个线程分配 注意:该参数对应的
分配内存是每连接独占!如果有 100 个连接,那么实际分配的总共排序缓冲区大小为 100 × 6 =
600MB。所以,对于内存在 4GB 左右的服务器推荐设置为 6-8M。#

51、read_buffer_size (查缓冲池大小)
读查询操作所能使用的缓冲区大小。和 sort_buffer_size 一样,该参数对应的分配内存也是每
连接独享!用来做 MyISAM 表全表扫描的缓冲大小.当全表扫描需要时,在对应线程中分配.

52、join_buffer_size (联合表缓冲池大小)线程级别的。
联合查询操作所能使用的缓冲区大小,和 sort_buffer_size 一样,该参数对应的分配内存也是
每连接独享! # 此缓冲被使用来优化全联合(full JOINs 不带索引的联合).类似的联合在极大多
数情况下有非常糟糕的性能表现, 但是将此值设大能够减轻性能影响.通过 “Select_full_join”
状态变量查看全联合的数量,当全联合发生时,在每个线程中分配。

53、read_rnd_buffer_size (索引扫描缓冲池大小)
当在排序之后,从一个已经排序好的序列中读取行时,行数据将从这个缓冲中读取来防止磁盘寻道.
# 如果你增高此值,可以提高很多 ORDER BY 的性能.当需要时由每个线程分配
总结:把排序好的数据放入这个缓冲池,再进行读取。可以减少磁盘寻道加快order by读数据的速度。

54、bulk_insert_buffer_size (插入树缓冲池)单个线程
MyISAM 使用特殊的类似树的 cache 来使得突发插入
# (这些插入是,INSERT … SELECT, INSERT … VALUES (…), (…), …, 以及 LOAD DATA
# INFILE) 更快. 此变量限制每个进程中缓冲树的字节数.
# 设置为 0 会关闭此优化.
# 为了最优化不要将此值设置大于 “key_buffer_size”.
# 当突发插入被检测到时此缓冲将被分配

55、myisam_sort_buffer_size (设置恢复表之时使用的缓冲区的尺寸)
此缓冲当 MySQL 需要在 REPAIR, OPTIMIZE, ALTER 以及 LOAD DATA INFILE 到一个空表
中引起重建索引时被分配.这在每个线程中被分配.所以在设置大值时需要小心.

56、myisam_max_sort_file_size (重建索引时可分配最大临时表值)
MySQL 重建索引时所允许的最大临时文件的大小 (当 REPAIR, ALTER TABLE 或者 LOAD DATA
INFILE). 如果文件大小比此值更大,索引会通过键值缓冲创建(更慢

57、myisam_repair_threads (多个索引分配多个线程去修复)
如果一个表拥有超过一个索引, MyISAM 可以通过并行排序使用超过一个线程去修
复他们.这对于拥有多个 CPU 以及大量内存情况的用户,是一个很好的选择.
如果该值大于1,在Repair by sorting过程中并行创建MyISAM表索引(每个索引在自己的线程内)

58、myisam_recover (允许的 GROUP_CONCAT()函数结果的最大长度)


59、group_concat_max_len (group_concat函数拼接最大长度)

60、transaction_isolation (隔离级别)
设定默认的事务隔离级别.可用的级别如下:
# READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ,
SERIALIZABLE
# 1.READ UNCOMMITTED-读未提交 2.READ COMMITTE-读已提交 3.REPEATABLE
READ -可重复读 4.SERIALIZABLE -串行

############innodb参数###########
61、innodb_file_per_table (独立表空间开启)

62、 innodb_file_format (指定文件格式参数)
5.5版本的新参数
innodb_file_format = Barracuda

63、innodb_additional_mem_pool_size (数据结构缓存池)
这个参数用来设置 InnoDB 存储的数据目录信息和其它内部数据结构的内存池大小。应用程序里的表越多,你需要在这里分配越多的内存。对于一个相对稳定的应用,这个参数的大小也是相对稳定的,也没有必要预留非常大的值。

64、innodb_buffer_pool_size (innodb缓冲池大小)
InnoDB 使用一个缓冲池来保存索引和原始数据, 不像 MyISAM.
# 这里你设置越大,你在存取表里面数据时所需要的磁盘 I/O 越少.
# 在一个独立使用的数据库服务器上,你可以设置这个变量到服务器物理内存大小的 80%
# 不要设置过大,否则,由于物理内存的竞争可能导致操作系统的换页颠簸.
# 注意在 32 位系统上你每个进程可能被限制在 2-3.5G 用户层面内存限制,
# 所以不要设置的太高.

65、innodb_data_home_dir (表空间文件存放位置)
设置此选项如果你希望 InnoDB 表空间文件被保存在其他分区.
# 默认保存在 MySQL 的 datadir 中

66、innodb_data_file_path (共享表空间设置)
InnoDB 将数据保存在一个或者多个数据文件中成为表空间.
# 如果你只有单个逻辑驱动保存你的数据,一个单个的自增文件就足够好了.
# 其他情况下.每个设备一个文件一般都是个好的选择.
# 你也可以配置 InnoDB 来使用裸盘分区 – 请参考手册来获取更多相关内容
#######mysql5.5new#############
67、innodb_read_io_threads (读取io线程数)
用来同步 IO 操作的 IO 线程的数量.
使用后台线程处理数据页上读 I/O(输出)请求的数量。

68、innodb_write_io_threads (写入io线程数)
这个值根据cpu核数来设置一般和上面read的值一样。
InnoDB 使用后台线程处理数据页上写 I/O(输入)请求的数量;

69、innodb_purge_threads (碎片回收线程数)
这个是回收碎片的线程数量。线程越多回收的速度越快,不影响其他线程操作
在之前版本,碎片回收操作是主线程的一部分,这经定期调度的方式运行,但会阻塞数据库的其他操作;
到5.5以后,可以将这个线程独立出来 ;方法:innodb_purge_threads =1 
这个应该能让碎片回收得更及时而且不影响其他线程的操作;


#######################################

70、innodb_thread_concurrency(允许并发进入的线程数)
InnoDB试着在InnoDB内保持操作系统线程的数量少于
或等于这个参数给出的限制
在 InnoDb 核心内的允许线程数量.
# 最优值依赖于应用程序,硬件以及操作系统的调度方式.
# 过高的值可能导致线程的互斥颠簸.


71、innodb_flush_log_at_trx_commit (日志刷磁盘的频率)
如果设置为 1 ,InnoDB 会在每次提交后刷新(fsync)事务日志到磁盘上,
# 这提供了完整的 ACID 行为.
# 如果你愿意对事务安全折衷, 并且你正在运行一个小的食物, 你可以设置此值到 0 或
者 2 来减少由事务日志引起的磁盘 I/O
# 0 代表日志只大约每秒写入日志文件并且日志文件刷新到磁盘.
# 2 代表日志写入日志文件在每次提交后,但是日志文件只有大约每秒才会刷新到磁盘上.

72、innodb_log_buffer_size (事物日志缓冲池)
用来缓冲日志数据的缓冲区的大小.
# 当此值快满时, InnoDB 将必须刷新数据到磁盘上.
# 由于基本上每秒都会刷新一次,所以没有必要将此值设置的太大(甚至对于长事务而言)

73、innodb_log_file_size (单个事物日志文件大小)
在日志组中每个日志文件的大小,你应该设置日志文件总合大小到你缓冲池大小的
25%~100%,来避免在日志文件覆写上不必要的缓冲池刷新行为.
# 不论如何, 请注意一个大的日志文件大小会增加恢复进程所需要的时间.

74、innodb_log_files_in_group (有多少个事物日志文件)

75、innodb_log_group_home_dir (事物日志文件位置)

76、innodb_max_dirty_pages_pct (脏页在缓冲池所占的最大比例)
在 InnoDB 缓冲池中最大允许的脏页面的比例.
# 如果达到限额, InnoDB 会开始刷新他们防止他们妨碍到干净数据页面.
# 这是一个软限制,不被保证绝对执行.
innodb 主线程刷新缓存池中的数据,使脏数据比例小
于 90%

77、innodb_lock_wait_timeout (事物等待加锁最大时间)
InnoDB 事务在被回滚之前可以等待一个锁定的超时秒数。
InnoDB 在它自己的 锁定表中自动检测事务死锁并且回滚事务。InnoDB 用 LOCK TABLES 语句注意
到锁定设置。默认值是 50 秒

78、innodb_flush_method (刷新日志的方法)
InnoDB 用来刷新日志的方法.
# 表空间总是使用双重写入刷新方法
fdatasync模式:写数据时,write这一步并不需要真正写到磁盘才算完成(可能写入到操作系统buffer中就会返回完成),真正完成是flush操作,buffer交给操作系统去flush,并且文件的元数据信息也都需要更新到磁盘。 O_DSYNC模式:写日志操作是在write这步完成,而数据文件的写入是在flush这步通过fsync完成 O_DIRECT模式:数据文件的写入操作是直接从mysql innodb buffer到磁盘的,并不用通过操作系统的缓冲,而真正的完成也是在flush这步,日志还是要经过OS缓冲

#######mysql5.6 new#####
79、innodb_buffer_pool_instances (有几个缓冲池)
默认值是1,表示InnoDB缓存池被划分到一个区域。适当地增加该参数(例如将该参数值设置为2),此时InnoDB被划分成为两个区域,可以提升InnoDB的并发性能。如果InnoDB缓存池被划分成多个区域,建议每个区域不小于1GB的空间。

80、innodb_change_buffering (是否开启查询缓冲)
在5.5之前。这还不叫change buffer,而是insert buffer; 当更新/插入的非聚集索引的数据所对应的页不在内存中时(对非聚集索引的更新操作通常会带来随机IO),会将其放到一个insert buffer中,当随后页面被读到内存中时,会将这些变化的记录merge到页中。当服务器比较空闲时,后台线程也会做merge操作 但insert buffer会占用buffer pool,并且在非聚集索引很少时,并不总是必要的,反而会降低buffer pool做data cache的能力,5.5提供了参数innodb_change_buffering来对其进行控制 根据官方文档的描述,主要包括以下几个值: 1.all The default value: buffer inserts, delete-marking operations, and purges. 2.none Do not buffer any operations. 3.inserts Buffer insert operations. 4.deletes Buffer delete-marking operations.(包括delete和update操作) 5.changes Buffer both inserts and delete-marking. 6.purges Buffer the physical deletion operations that happen in the background 顶

81、 innodb_adaptive_flushing (自适应刷新脏页)

0(native)
This setting causes checkpointing to operate exactly asit does in native InnoDB
1(estimate)
If the oldest modified age exceeds 1/2 of the maximum agecapacity, InnoDB starts flushing blocks every second. The number of blocksflushed is determined by [number of modified blocks], [LSN progress speed] and[average age of all modified blocks]. So, this behavior is independent of the innodb_io_capacityvariable.
 2(keep_average)
This method attempts to keep the I/O rate constant byusing a much shorter loop cycle (0.1second) than that of the other methods (1.0second). It is designed for use with SSD cards.

82、innodb_io_capacity (调整刷新脏页的数量)
,innodb_io_capacity参数可以动态调整刷新脏页的数量,这在一定程度上解决了这一问题。
   innodb_io_capacity默认是200,单位是页,该参数的设置大小取决于硬盘的IOPS,即每秒每秒的输入输出量(或读写次数)。

83、innodb_old_blocks_time ( :控制bp中数据的冷热程度调度

在该过程中,还会涉及另一个参数innodb_old_blocks_time。在访问sublist of old blocks区域里的数据块时,并不是马上就移动到sublist of new blocks区域,而是会先让数据停留在sublist of old blocks区域innodb_old_blocks_time(微秒),然后再移动到sublist of new blocks区域,这样就保证了sublist of new blocks区域里的数据不会马上被踢出。



84、innodb_stats_on_metadata (是否开启索引统计)
这个参数开启的时候,在进行元数据查询的时候会进行innodb更新统计,查询元数据的SQL包括show table status、show index,或者访问   INFORMATION_SCHEMA 库的表
关闭这个参数,可以加快对于schema库表访问,同时也可以改善查询执行计划的稳定性(对于Innodb表的访问)。
在5.6中是默认关闭的。

总结:不用他的原因就是我每次查数据字典的时候他都会进行 更新统计,这样我就访问慢了。

85、old-passwords (密码加密)
如果old_passwords=1,则old_password()和password()加密结果相同都是16位。
如果old_passwords=0,则old_password()加密结果是16位。

############mysqldump##########
86、quick (不要在将内存中的整个结果写入磁盘之前缓存. )
在导出非常巨大的表时需要此项
总结:开启这个是为了不让这些要导出的大量数据占用缓存。导致占满缓存。影响其他线程读取数据。

87、max_allowed_packet (较大结果行所分配的额外内存)
增加该变量的值十分安全,这是因为仅当需要时才会分配额外内存。例如,仅当你发出
长查询或 mysqld 必须返回大的结果行时 mysqld 才会分配更多内存。该变量之所以取较
小默认值是一种预防措施,以捕获客户端和服务器之间的错误信息包,并确保不会因偶
然使用大的信息包而导致内存溢出。 如果你正是用大的 BLOB 值,而且未为 mysqld 授予
为处理查询而访问足够内存的权限,也会遇到与大信息包有关的奇怪问题。如果怀疑出
现了该情况,请尝试在 mysqld_safe 脚本开始增加 ulimit -d 256000,并重启 mysqld。

############mysql客户端##########
88、no-auto-rehash (不允许使用tab提示)

89、default-character-set (客户端字符集)

90、connect-timeout (获取链接多长时间超时)
获取MySQL连接是多次握手的结果,除了用户名和密码的匹配校验外,还有IP->HOST->DNS->IP验证,任何一步都 可能因为网络问题导致线程阻塞。为了防止线程浪费在不必要的校验等待上,超过connect_timeout的连接请求将会被拒绝。
#######mysqlhotcopy#######
91、interactive-timeout ( 服务器关闭交互式连接前等待活动的秒数)
参数默认值:28800秒(8小时

#############后续参数###########

92、table_definition_cache (表定义缓冲池)
用于缓存frm文件用的。
表定义文件缓存相比表文件描述符缓存所消耗的内存更小,其默认值是400
状态值:
Open_table_definitions:表定义文件.frm被缓存的数量
Opened_table_definitions:历史上总共被缓存过的,frm文件数量

93、 sync_binlog (binlog刷盘参数)
总结:这个参数是binlog写磁盘的频率问题,1~N(表示多少个事物就把binlog刷入磁盘)
5.5往后版本默认值是0。意思是什么时候刷磁盘由mysql自己决定。
94、innodb_support_xa (分布式事物参数)
总结:这个分两个功能就是外部xa事物,也就是分布式事物,但是是目测支持的并不太好。不然老师怎么一句话不提。
第二个就是内部的xa事物也就是mysql自己管理的。他的存在也是为了解决redo和bin两种日志数据不一样的问题。
他让这两种日志数据一致,就能保证主从数据的一致。


95、innodb_file_format_check (用来检查共享表空间文件格式)
如果你共享表空间的文件格式高于当前版本,并且你开启检查了,在启动的时候就会报错。用于保护数据。防止数据损坏

96、innodb_purge_batch_size (清理undo页单次数量 )
你开启了单独线程清理undo页的时候 ,就会产生这个参数,他默认是单次清理20页。一般不用调整。

97、innodb_replication_delay (复制延迟)为了预防有黑客入侵删除主库的数据,把备库延迟可以起到保护数据的作用。

98、innodb_spin_wait_delay(自旋锁间隙时间)
自旋锁他是为了保护共享资源的一种锁机制。与互斥锁很像,但是互斥锁,当 等待加锁的时候会进行休眠,而自旋锁他会循环查看资源有没有被释放。为了不让他频繁的去查看,消耗过多cpu。所以设立一个间歇参数,让他查看频率降低。

99、innodb_stats_method(Innodb表对null值的处理方式)
解释:收集 Innodb 表索引值分布统计时,服务器如何处理 NULL 值,该参数有
3 个可选值,nulls_equal=所有的 null 被看成相等的一个值,nulls_unequal=每个
null 被看成单独的一个值,nulls_igored=null 被忽略,默认值为 nulls_equal。

100、innodb_stats_sample_pages (访问元数据表不进行统计更新)
解释:每当查询 information_schema 元数据库里的表时,Innodb 还会随机提取其
他数据库每个表 8 个索引页的部分数据, 来更新 information_schema.STATISTICS
表,来返回刚才你查询的结果。默认是 8 个页,可动态更改。如果你关闭了
innodb_stats_on_metadata,那么这个参数被忽略。

101、innodb_strict_mode(语法严格模式)
他可以强制你的语法必须规范,不规范就报错。防止之后的问题。

102、innodb_use_native_aio (系统的异步i/o)
异步i/o线程会把处理请求交给内核之后就做别的事情了,内核处理完了就告诉你。效率很高呀。

103、innodb_use_sys_malloc (内存分配是用innodb自己的还是用系统的,默认为1表示用系统的)
##########复制相关参数#############
104、relay_log_recovery (slave宕机了,中继日志损坏他怎么处理)
开启为好,如果有中继日志损坏他会重新从主库上读取日志。建议开启。

105、sync_relay_log(中继日志的刷盘规则)
1是slave的I/o线程接受binlog,把他放到系统缓存区当中,之后再写入relay_log当中,这种情况在宕机时候最多 损失一个事物,但是会消耗较多i/o。
0是接受来的binlog日志,放到系统缓存区当中,但是并不是立马写入relay_log当中。这种情况下如果宕机了,就不知道丢多少事物了。但是i/o会消耗较少。

106、sync_relay_log_info (执行多少个事务后将relay-log-info,sync一下文件刷新到磁盘)
relay-log-info:记录SQL线程读取Master binlog的位置,用于Slave 宕机后根据文件中记录的pos点恢复Sql线程

107、sync_master_info (执行多少个事务后将master-info,sync一下文件刷新到磁盘)
master-info:记录IO线程读取已经读取到的master binlog位置,用于slave宕机后IO线程根据文件中的POS点重新拉取binlog日志

108、rpl_semi_sync_master_enabled (开关半同步)

109、rpl_semi_sync_master_timeout(半同步超时时间)
解释:表示主库在某次事务中,如果等待时间超过 10 秒,那么则降级为异步复
制模式,不再等待 SLAVE 从库。如果主库再次探测到,SLAVE 从库恢复了,
则会自动再次回到半同步复制模式。默认为 10000 毫秒,等于 10 秒,这个参数
动态可调。

110、rpl_semi_sync_master_wait_no_slave(等待slave确认接收参数)
解释:是否允许 master 每个事务提交后都要等待 slave 的接收确认信号。默认为
on,每一个事务都会等待。如果为 off,则 slave 追赶上后,也不会开启半同步复
制模式,需要手工开启,可动态修改。

111、rpl_semi_sync_slave_enabled(从上开启半同步参数)
解释:表示在 slave 上已经是否开启半同步复制模式,默认是不开启,可动态修
改。

112、 rpl_semi_sync_master_trace_level(半同步调试级别)
对于需要调试代码的童鞋而言,rpl_semi_sync_master_trace_level和rpl_semi_sync_slave_trace_level非常重要,通过设置level取值,可以打印日志记录半同步的详细过程,方便定位问题。
1 = general level (for example, time function failures)
16 = detail level (more verbose information)
32 = net wait level (more information about network waits)
64 = function level (information about function entry and exit)

113、 rpl_semi_sync_slave_trace_level(半同步调试级别)

1 = general level (for example, time function failures)
16 = detail level (more verbose information)
32 = net wait level (more information about network waits)
64 = function level (information about function entry and exit)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值