innodb 5.7.11 版本 所有变量记录

innodb_adaptive_flushing

在线可以调整数据类型默认值合法值
Yesbooleanonon/off

是否启用innodb根据负载动态刷出脏页的功能。

一般情况下,5.7.5开始,innodb会在实例脏页比例到达innodb_max_dirty_pages_pct之后,刷出脏页。

除此之外,当redo切换的时候,也会造成刷出脏页,如果redo生产速度过快,会导致redo频繁切换导致数据库性能问题,这个参数可以根据redo的写出速度决定合适的脏页刷出速度,避免redo切换造成的性能损失。

innodb_adaptive_flushing_lwm

在线可以调整数据类型默认值合法值
Yesint100-70

innodb动态刷出脏页特性启用的redo使用比例的低水位线。

innodb_adaptive_hash_index

在线可以调整数据类型默认值合法值
Yesbooleanonon/off

是否弃用innodb自适应hash索引。

为了加快数据的访问速度,innodb可以维护一个hash表,key是数据索引键的部分前缀,hash的value是对应的数据页的位置。

innodb_adaptive_hash_index_parts

在线可以调整数据类型默认值合法值
Noint81-512

从 5.7.8 开始,AHI使用的索引开始支持分区,避免之前单个索引导致的锁争用问题。

innodb_adaptive_max_sleep_delay

在线可以调整数据类型默认值合法值
Yesint1500000-1000000

让innodb根据负载自己决定innodb_thread_sleep_delay的数值。这个数字值单位为ms,在多于16个innodb线程的繁忙系统中,这个值可能能起到更大的作用。

innodb_additional_mem_pool_size

在线可以调整数据类型默认值合法值
Noint83886082097152-4294967295

innodb存储数据字典以及其他一些内部数据结构使用的内存。如果使用超过了,innodb会继续分配内存,但会在errorlog里面报错。

innodb_api_bk_commit_interval

在线可以调整数据类型默认值合法值
Yesint51-1073741824

使用memcached插件的时候,每多少秒自动提交空闲的会话。

innodb_api_disable_rowlock

在线可以调整数据类型默认值合法值
Nobooleanoffon/off

当使用memcached插件的时候,对于dml操作,是否使用行锁,如果启用这个选项,会导致innodb采用表锁而不是行锁来锁定数据。

innodb_api_enable_binlog

在线可以调整数据类型默认值合法值
Nobooleanoffon/off

让memcached插件可以写入binlog,写入直接写为row格式,与binlog_format参数设置无关。

innodb_api_enable_mdl

在线可以调整数据类型默认值合法值
Nobooleanoffon/off

对memcached使用的表加上锁,避免通过SQL方式的DDL语句导致的表变更或者drop。

innodb_api_trx_level

在线可以调整数据类型默认值合法值
Yesint00/1/2/3

设置采用memcached插件时候,使用的数据库隔离级别。

  • 0 读未提及交
  • 1 读已提交
  • 2 可重复读
  • 3 序列化

innodb_autoextend_increment

在线可以调整数据类型默认值合法值
Yesint641-1000

innodb系统表空间满了之后,每次扩容的步长(MB)。这个参数对使用innodb_file_per_table=1独立出来的idb文件无效。

innodb_autoinc_lock_mode

在线可以调整数据类型默认值合法值
Noint10/1/2

innodb自增主键生成的锁模式。

  • 0 传统的 每次自增都会锁表
  • 1 连续的 根据所需行数,每次先获取id,对insert select语法友好
  • 2 交叉的 不锁表,每次处理一个,statement模式下不安全

innodb_background_drop_list_empty

在线可以调整数据类型默认值合法值
Yesbooleanoffon/off

避免测试的时候,使用相同表的多个测试用例需要等待对应表在drop队列中执行完成。

innodb_buffer_pool_chunk_size

在线可以调整数据类型默认值合法值
Noint1342177281048576-innodb_buffer_pool_size/innodb_buffer_pool_instances

innodb在线buffer pool调整的桶大小。调整必须被1048576(1MB)整除。

  • 如果innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances 大于当前的buffer pool大小的话,innodb_buffer_pool_chunk_size值会自动变成innodb_buffer_pool_size / innodb_buffer_pool_instances.
  • buffer size必须是 innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances的倍数,如果修改了innodb_buffer_pool_chunk_size,buffer pool会自动调整为innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances 的倍数。

为了避免对性能的影响,innodb_buffer_pool_size / innodb_buffer_pool_chunk_size不应该超过1000。

innodb_buffer_pool_dump_at_shutdown

在线可以调整数据类型默认值合法值
Yesbooleanon(>=5.7.7)on/off

是否在实例关闭的时候保存buffer pool的内容,避免加热buffer导致的性能问题。一般会与 innodb_buffer_pool_load_at_startup共用。

innodb_buffer_pool_dump_now

在线可以调整数据类型默认值合法值
Yesbooleanoffon/off

马上导出innodb的pool里面的page。

innodb_buffer_pool_dump_pct

在线可以调整数据类型默认值合法值
Yesint100 <=5.7.6 251-100

对每个pool来说,应该导出的数据的百分比,从最热的数据开始导出。

innodb_buffer_pool_filename

在线可以调整数据类型默认值合法值
Yesstringib_buffer_pool字符串

innodb pool导出的文件名。

innodb_buffer_pool_instances

在线可以调整数据类型默认值合法值
Noint81-64

innodb buffer pool的数量,对于超大内存的实例来说,单个大的pool在并发情况下可能会导致性能损失。

innodb_buffer_pool_load_abort

在线可以调整数据类型默认值合法值
Yesbooleanoffon/off

打断buffer pool的load。

innodb_buffer_pool_load_at_startup

在线可以调整数据类型默认值合法值
Nobooleanoff <=5.7.6 onon/off

mysql启动的时候。自动加载之前保存的buffer pool。

innodb_buffer_pool_load_now

在线可以调整数据类型默认值合法值
Yesbooleanoffon/off

马上加载之前保存的buffer pool文件。

innodb_buffer_pool_size

在线可以调整数据类型默认值合法值
Yesint1342177285242880-(2**64-1)

buffer pool的总大小。

innodb_change_buffer_max_size

在线可以调整数据类型默认值合法值
Yesint250-50

change buffer占用buffer pool的比例。对于热写入应用来说,这个值调大,有利于写入性能。

innodb_change_buffering

在线可以调整数据类型默认值合法值
Yesenumerationallnone/inserts/deletes/changes/purges/all

当innodb使用change buffer的时候,对二级索引的变更会延后,避免io损失,这个选项决定对哪些操作启用change buffer。

  • none 不使用change buffer
  • inserts 对insert操作启用change buffer。
  • deletes 明确定义为:对标记值可以被purge的过程使用change buffer。
  • changes 对insert操作以及删除标记的操作使用change buffer。
  • purges 当后台物理删除记录的时候,使用change buffer。
  • all 对以上所有操作使用change buffer。

innodb_change_buffering_debug

在线可以调整数据类型默认值合法值
Yesint02

对innodb设置debug标记。

  • 1 强制所有操作使用change buffer
  • 2 当merge的时候,crash掉实例。
  • 0 取消标记。

innodb_checksum_algorithm

在线可以调整数据类型默认值合法值
Yesenumerationinnodb <=5.7.6 CRC32innodb/crc32/none/strict_innodb/strict_crc32/strict_none

innodb块验证使用的算法。

innodb为早期默认算法,crc32每次验证32位,innodb每次验证8位。 strict模式下,会在验证到有效但不匹配的page的时候,输出错误信息。

innodb_checksums

在线可以调整数据类型默认值合法值
Nobooleanonon/off

innodb使用checksum指定的算法确认从磁盘读取的数据的完整性,避免磁盘或者操作系统问题。在5.6.3开始,这个参数开始废弃。采用innodb_checksum_algorithm替换。

innodb_cmp_per_index_enabled

在线可以调整数据类型默认值合法值
Yesbooleanoffon/off

是否在 INFORMATION_SCHEMA.INNODB_CMP_PER_INDEX中维护每个索引压缩相关的信息。维护代价较大,如果使用了innodb的压缩表的话,一般推荐在测试阶段或者从库上启用。

innodb_commit_concurrency

在线可以调整数据类型默认值合法值
Yesint00-1000

同时可以commit的事务线程数量。运行的时候,不能从0调整为别的值或者从别的值调整为0,但大于0的话,可以在线调整。0即不限制同时提交事务的数量。

innodb_compress_debug

在线可以调整数据类型默认值合法值
Yesenumerationnonenone/zlib/lz4/lz4hc

使用指定的算法1压缩所有表。

innodb_compression_failure_threshold_pct

在线可以调整数据类型默认值合法值
Yesint50-100

innodb压缩的时候,对页的填充比例,设置这个参数很多情况下可以避免压缩失败。

innodb_compression_level

在线可以调整数据类型默认值合法值
Yesint60-9

指定zlib压缩级别。

innodb_compression_pad_pct_max

在线可以调整数据类型默认值合法值
Yesint500-75

指定被压缩page最大可以填充的比例。

innodb_concurrency_tickets

在线可以调整数据类型默认值合法值
Yesint50001-4294967295

指定同时并发工作的innodb线程的数量。

innodb_create_intrinsic

在线可以调整数据类型默认值合法值
Yesbooleanoffon/off

废弃参数。

建立优化型临时表。

允许innodb readonly模式下,对表的写入。不支持undo,原子性支持到行级别而不是语句级别,元数据不会保存在 INFORMATION_SCHEMA.INNODB_TEMP_TABLE_INFO 。

innodb_data_file_path

在线可以调整数据类型默认值合法值
Nostringibdata1:12M:autoextend文件路径描述

文件大小描述允许K,M,G单位,可以使用裸设备。可以指定多个文件,但是autoextend只能设置到一个文件上。

  • 16KB页大小,数据文件最小大小需要3MB。
  • 32KB页大小,最小需要6MB。
  • 64KB页大小,最小需要12MB。

innodb_data_home_dir

在线可以调整数据类型默认值合法值
Nostring文件目录

innodb默认数据目录。

innodb_default_row_format

在线可以调整数据类型默认值合法值
YesenumerationDYNAMICDYNAMIC/COMPACT/REDUNDANT

innodb 默认行格式。

innodb_disable_resize_buffer_pool_debug

在线可以调整数据类型默认值合法值
Yesbooleanonon/OFF

禁用对innodb buffer pool调整的debug。

innodb_disable_sort_file_cache

在线可以调整数据类型默认值合法值
Yesbooleanoffon/off

如果启用,innodb将不会在临时排序文件上使用系统文件cache,而是使用 O_DIRECT 操作。

innodb_doublewrite

在线可以调整数据类型默认值合法值
Nobooleanonon/off

默认启用,所有的数据都会被写入两次,首先写入双写缓存,之后再写入数据文件。

innodb_fast_shutdown

在线可以调整数据类型默认值合法值
Yesint10/1/2
  • 0 在关闭数据库前,会刷出所有page页,change buffer也会被合并。
  • 1 不会刷出change buffer,也不会刷出所有的page页,提升实例关闭效率。
  • 2 只会刷出log,然后直接关闭。

innodb_fil_make_page_dirty_debug

在线可以调整数据类型默认值合法值
Yesint00-2**32

马上弄脏指定表空间的第一个页。

innodb_file_format

在线可以调整数据类型默认值合法值
YesstringBarracudaAntelope/Barracuda

innodb默认的文件格式。这个参数只会影响到使用 innodb_file_per_table参数的表。Barracuda对于压缩,大的索引前缀等特性来说是必须的。

这个参数已经过期,兼容的主要目的是为了可以降级到mysql 5.1。

innodb_file_format_check

在线可以调整数据类型默认值合法值
Nobooleanonon/OFF

在启动的时候,检查当前启动的mysql版本是否支持所有的数据文件,如果不支持,直接crash。

innodb_file_format_max

在线可以调整数据类型默认值合法值
YesstringBarracudaAntelope/Barracuda

当前设置允许最高的file_format,如果设置了更高值,则回退使用设置的最高值。

innodb_file_per_table

在线可以调整数据类型默认值合法值
YesbooleanonON/OFF

每个表都使用单独的数据文件存储,除非在建表以及表结构变更的时候使用 TABLESPACE=innodb_system ,可以通过TABLESPACE=innodb_file_per_table从系统表空间提取出表到独立表空间。

innodb_fill_factor

在线可以调整数据类型默认值合法值
Yesint10010-100

从mysql 5.7.5开始,innodb通过批量load的方式建立或者重建索引。这个参数指定了,当页填充比例到多少之后认为是满了。

设置为100,会在页内留出1/16的空间用于未来的增长。

innodb_flush_log_at_timeout

在线可以调整数据类型默认值合法值
Yesint11-2700

每间隔多少秒刷出一次log。避免过快刷出频率对binlog组提交速度的影响。

innodb_flush_log_at_trx_commit

在线可以调整数据类型默认值合法值
Yesenumeration10/1/2

在ACID的强一致性与commit之间性能的妥协。

  • 0 每秒刷出一次log,避免性能问题。
  • 1 在事务提交的时候,强制必须刷出所有log才算提交成功。
  • 2 在0和1之间自动调整。

    innodb_flush_log_at_timeout可以控制刷出间隔多于1s。

    DDL以及其他的一些innodb内部方法flush log不受这个参数影响。

    innodb的崩溃恢复需要依赖日志文件,会受到这个参数的影响。

    一般来说,如果设置为1,也会同时设置参数 sync_binlog=1.

innodb_flush_method

在线可以调整数据类型默认值合法值
NostringNULLfsync/O_DSYNC/littlesync/nosync/O_DIRECT/O_DIRECT_NO_FSYNC

INNODB flush时候,操作文件所用的方法。

  • fsync 采用fsync系统调用写出文件。
  • O_DSYNC innodb 采用O_SYNC刷出日志文件,采用fsync写出数据文件。
  • littlesync 测试,不用于线上。
  • nosync 测试,不用于线上。
  • O_DIRECT 采用O_DIRECT打开文件,然后使用fsync写出数据文件以及日志文件,
  • O_DIRECT_NO_FSYNC,采用 O_DIRECT 写出文件,但不会在之后调用fsync。

innodb_flush_neighbors

在线可以调整数据类型默认值合法值
Yesenumeration10/1/2

决策是否在刷出脏页的时候,一起刷出同一个段的其他页。

  • 0 不会刷出别的脏页。
  • 1 刷出邻近的同一个段的脏页。
  • 2 刷出同一个段的脏页。

innodb_flush_sync

在线可以调整数据类型默认值合法值
Yesbooleanonon/OFF

在checkpoint的时候,不会受到innodb_io_capacity的影响。

innodb_flushing_avg_loops

在线可以调整数据类型默认值合法值
Yesint301-1000

计算flush状态的时候,innodb维护的计数,用于控制自适应刷出的速度。

innodb_force_load_corrupted

在线可以调整数据类型默认值合法值
Nobooleanoffon/off

强行加载标记为损坏的表,主要用于非常规的数据恢复。

innodb_force_recovery

在线可以调整数据类型默认值合法值
Noint00-6

启用故障恢复模式。

  • 1 即便发现损坏的页,实例也正常运行。
  • 2 避免innodb master以及purge线程的运行。
  • 3 不回滚事务。
  • 4 避免insert buffer的合并。
  • 5 不扫描undo日志。
  • 6 不做redo前滚,会导致部分数据页数据错误。

当大于0的时候,innodb会拒绝insert,update,delete请求,大于3的话,innodb会进入readonly模式。

innodb_ft_aux_table

在线可以调整数据类型默认值合法值
YesStringdb_name/table_name

指定包含全文索引的表的名称。设置之后,可以在information_schema里面看到 INNODB_FT_INDEX_TABLE, INNODB_FT_INDEX_CACHE, INNODB_FT_CONFIG, INNODB_FT_DELETED, INNODB_FT_BEING_DELETED 相关的信息展示。

innodb_ft_cache_size

在线可以调整数据类型默认值合法值
Noint80000001600000-80000000

innodb为每个表的全文索引分配的内存,单位bytes,当到达大小的时候,innodb会直接写入索引到磁盘。

innodb_ft_enable_diag_print

在线可以调整数据类型默认值合法值
YesbooleanoffON/OFF

打开全文索引的诊断信息输出。

innodb_ft_enable_stopword

在线可以调整数据类型默认值合法值
YesbooleanonON/OFF

创建全文索引的时候,启用stopword。

会优先使用innodb_ft_user_stopword_table ,如果不存在,使用 innodb_ft_server_stopword_table选项指定的值。

innodb_ft_max_token_size

在线可以调整数据类型默认值合法值
Noint840-84

innodb全文索引运行存储的最长的词长度。

innodb_ft_min_token_size

在线可以调整数据类型默认值合法值
Noint30-16

innodb全文索引运行存储的最短词长度。

innodb_ft_num_word_optimize

在线可以调整数据类型默认值合法值
Yesint2000合法自然数

OPTIMIZE TABLE的时候,每次处理的全文索引的词的数量。

innodb_ft_result_cache_limit

在线可以调整数据类型默认值合法值
Yesint20000000001000000-(2**32-1)

单次查询,innodb为其准备的结果缓冲区大小。

innodb_ft_server_stopword_table

在线可以调整数据类型默认值合法值
Yesstringnulldb_name/table_name

指定自定义的stopworld表。

innodb_ft_sort_pll_degree

在线可以调整数据类型默认值合法值
Noint21-32

并发创建全文索引的线程数量。

innodb_ft_total_cache_size

在线可以调整数据类型默认值合法值
Noint64000000032000000-1600000000

innodb全文索引总可使用的缓存大小,使用达到限制之后,会触发fsync刷出缓存。

innodb_ft_user_stopword_table

在线可以调整数据类型默认值合法值
Yesstringnulldb_name/table_name

指定自定义的stopworld表,优先级高于innodb_ft_server_stopword_table。

innodb_io_capacity

在线可以调整数据类型默认值合法值
Yesint200100-(2**64-1)

限制innodb后台任务活跃io的使用数量,对应关系为每秒使用io数量。5.7.2开始,这个参数也限制了buffer pool 重新加载的速度。

innodb_io_capacity_max

在线可以调整数据类型默认值合法值
Yesint2000100-(2**64-1)

限制innodb后台任务活跃io的使用数量,对应关系为每秒使用io数量。5.7.2开始,这个参数也限制了buffer pool 重新加载的速度。

这个参数限制最大值,如果innodb_io_capacity超过innodb_io_capacity_max,以innodb_io_capacity_max为准。

innodb_large_prefix

在线可以调整数据类型默认值合法值
YesbooleanOFF <5.7.7 onON/OFF

过期参数,当使用DYNAMIC或者COMPRESS行格式的时候,允许innodb索引字段长度超过 767 bytes (最高到 3072 bytes)。

innodb_limit_optimistic_insert_debug

在线可以调整数据类型默认值合法值
Yesint00-(2**32-1)

限制B树里面一页可以存储的数据。0代表没有限制。

innodb_lock_wait_timeout

在线可以调整数据类型默认值合法值
Yesint501-1073741824

一个事务等待一个innodb行锁超时的最大时间。

客户端会收到以下错误:

ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction

相关参数innodb_rollback_on_timeout ,如果打开,超时会导致整个事务回滚,而不只是失败的语句。

innodb_locks_unsafe_for_binlog

在线可以调整数据类型默认值合法值
Nobooleanoffon/OFF

这个参数决定innodb查询以及索引扫描的时候如何使用gap锁。

一般来说,innodb会通过一个叫下一键锁的算法,锁定行以及gap锁。当innodb查询或者扫描索引的时候,会通过这种方式加锁,innodb会在所有扫描的索引记录上加上共享或者排他锁,也就是说,行锁,其实就是索引记录锁,另外,一个索引记录的下一键锁,也会锁定这个记录前面的gap。这个主要是防止,当一个事务查询记录R之后,有另外一个事务要插入数据到R前。

默认情况下,innodb_locks_unsafe_for_binlog为0,除非只是查询以及索引扫描,不然一定会用上gap锁。

启用innodb_locks_unsafe_for_binlog不会禁用掉外间以及键冲突时候使用的gap锁。

如果确定要使用 innodb_locks_unsafe_for_binlog ,最好采用READ COMMITTED隔离级别。

启用innodb_locks_unsafe_for_binlog之后:

  • 对于update,delete语句,innodb只会拿到所操作行的锁,对于不符合条件但扫描到的行,innodb会在之后释放其上的锁,这会很大程度上减少死锁,但并不能完全避免。
  • 对于需要扫描的行已经被别人正在update的情况,innodb会执行一次“半一致性”读,读到该记录最后一次commit的数据,如果不符合条件,则跳过继续执行,否则开始等待行上的锁。

innodb_log_buffer_size

在线可以调整数据类型默认值合法值
Noint167772161048576-4294967295

innodb 日志缓存大小。为了兼容innodb 64k大页,默认大小从8MB调整到16MB,大的缓冲区的好处是,对于大事务,不必在commit前写入日志文件。

innodb_log_checksum_algorithm

在线可以调整数据类型默认值合法值
Yesenumerationinnodbinnodb/crc32/none/strict_innodb/strict_crc32/strict_none

已经废弃

指定日志文件的验证算法。之前只有innodb算法才支持redo日志的计算。strict_*算法只能用于全新的实例。

innodb_log_checksums

在线可以调整数据类型默认值合法值
Yesbooleanonon/OFF

对redo日志启用校验,默认使用crc32算法。

即使关闭选项,对于redo日志首页以及checkpoint时候的redo日志页都会被校验。

innodb_log_compressed_pages

在线可以调整数据类型默认值合法值
Yesbooleanonon/OFF

是否在redo日志中保存压缩后的页。

innodb_log_file_size

在线可以调整数据类型默认值合法值
Noint503316484194304-512GB / innodb_log_files_in_group

一组日志文件里面单个日志文件的大小。一般推荐值是buffer pool的1/N,N是一个组里面日志文件的数量。这个值越大,需要checkpoint的时候越少,大redo会导致崩溃恢复非常漫长。

innodb_log_files_in_group

在线可以调整数据类型默认值合法值
Noint22-10

一个日志组里面,日志文件的数量。这些文件会被轮询使用。

innodb_log_group_home_dir

在线可以调整数据类型默认值合法值
Nostringnull目录

redo日志的目录位置,默认在data目录下。

innodb_log_write_ahead_size

在线可以调整数据类型默认值合法值
Yesint8192512-数据页大小

为了避免写时读,设置这个值来匹配操作系统单次io的操作单位。合法的值必须是512的2**的倍数。

innodb_lru_scan_depth

在线可以调整数据类型默认值合法值
Yesint1024100-(2**64-1)

指定page_cleaner 线程每次扫描脏页时的深度,对于纯写入型应用来说,设大这个参数收益比较大,一般来说,如果有很大的buffer pool,可以设置小一点。

innodb_max_dirty_pages_pct

在线可以调整数据类型默认值合法值
Yesnumeric750-99.99

innodb会刷出脏页来使innodb buffer pool里面的脏页比例小于这个参数。

innodb_max_dirty_pages_pct_lwm

在线可以调整数据类型默认值合法值
Yesnumeric00-99.99

刷出脏页的低水位线。

innodb_max_purge_lag

在线可以调整数据类型默认值合法值
Yesint00-4294967295

这个参数决定innodb当purge滞后的时候如何延迟insert,update,delete。

Innodb事务系统会维护一个包含所有拥有delete,update导致的delete标记的事务的列表,当这个列表的长度超过innodb_max_purge_lag,则对新的dml语句,延后执行innodb_max_purge_lag_delay毫秒。

innodb_max_purge_lag_delay

在线可以调整数据类型默认值合法值
Yesint00-2**64

必须配合innodb_max_purge_lag一起使用,可以被延后执行的最长时间。

innodb_max_undo_log_size

在线可以调整数据类型默认值合法值
Yesint107374182410485760-(2**64-1)

确定undo表空间的最大大小。如果超过临界值,当启用了 innodb_undo_log_truncate 的话,undo会被标记为可truncate。

innodb_merge_threshold_set_all_debug

在线可以调整数据类型默认值合法值
Yesint501-50

改掉当前MERGE_THRESHOLD的值,当索引页低于这个值的时候,就合并索引页。

innodb_monitor_disable

在线可以调整数据类型默认值合法值
Yesstringnull合法innodb metric

关闭一个或者多个innodb统计值(INFORMATION_SCHEMA.INNODB_METRICS)的计数。

innodb_monitor_enable

在线可以调整数据类型默认值合法值
Yesstringnull合法innodb metric

启用一个或者多个innodb统计值(INFORMATION_SCHEMA.INNODB_METRICS)的计数。

innodb_monitor_reset

在线可以调整数据类型默认值合法值
Yesstringnull合法innodb metric

重设指定的metric为0.

innodb_monitor_reset_all

在线可以调整数据类型默认值合法值
Yesstringnull合法innodb metric

重设所有metric的计数。

innodb_numa_interleave

在线可以调整数据类型默认值合法值
NobooleanoffON/OFF

允许使用numa的interleave内存分配算法,使用interleave分配innodb buffer pool,其他操作还是使用默认numa设置。

innodb_old_blocks_pct

在线可以调整数据类型默认值合法值
Yesint375-95

设置老数据块占用buffer pool的比例,经常与innodb_old_blocks_time联合使用。

innodb_old_blocks_time

在线可以调整数据类型默认值合法值
Yesint10000-(2**32-1)

这个值指定一个块被认为是新块需要从老块列表移走之前,需要至少存在的时间。单位为毫秒。如果设置为0,则在第一次访问之后就会被从老块列表踢出到新块列表。

innodb_online_alter_log_max_size

在线可以调整数据类型默认值合法值
Yesint13421772865536-(2**64-1)

innodb在线改表的时候,维护的临时日志文件的大小上限。表上的每个索引一个日志文件。这个文件存储alter期间发生的insert,update,delete。如果到达上限,会中断dml并且回滚所有未提交的语句。对于大表dml来说,也有可能会导致较久的dml执行完成之后,日志的恢复时间。

innodb_open_files

在线可以调整数据类型默认值合法值
Noint-110-4294967295

当使用多个表空间的时候,这个参数控制了innodb总共可以打开的文件描述符数量,专门针对ibd文件。

innodb_optimize_fulltext_only

在线可以调整数据类型默认值合法值
Yesbooleanoffoff/on

这个选项控制OPTIMIZE TABLE语句执行的对象,打开的话,执行对象是表上的全文索引,关闭的话,针对的是表上的聚簇索引。

innodb_optimize_point_storage

在线可以调整数据类型默认值合法值
Yesbooleanoffoff/on

允许innodb使用变长blob存储point数据,从5.7.6开始废弃。

innodb_page_cleaners

在线可以调整数据类型默认值合法值
Noint1 >=5.7.8 41-64

从innodb buffer pool刷出脏页的线程的数量。从5.6.2开始从master线程中独立出来,5.7.4开始支持多线程flush。这个值必须小于等于innodb_buffer_pool_instances。

innodb_page_size

在线可以调整数据类型默认值合法值
Noenumeration163844k/8k/16k/4096/8192/16384 >=5.7.6 32k/64k/32768/65536

对于32k以及64k大页,行最大长度是16000字节,并且不支持innodb压缩,32k的段长度为2MB,64k的段长度为4MB,对于大页,pool size至少需要16M。

innodb_print_all_deadlocks

在线可以调整数据类型默认值合法值
Yesbooleanoffon/off

打开选项会让innodb把所有死锁都计入error log,一般情况下,只能使用show engine innodb 命令看到最新的一个死锁。

innodb_purge_batch_size

在线可以调整数据类型默认值合法值
Yesint3001-5000

每次从pool刷出脏页的个数,和innodb_purge_threads关联。

innodb_purge_rseg_truncate_frequency

在线可以调整数据类型默认值合法值
Yesint1281-128

控制purge回滚段的速度,undo表空间在其上有活动段的时候,无法回收。这个参数设置,每执行多少次purge之后,purge一次回滚段。

innodb_purge_threads

在线可以调整数据类型默认值合法值
Noint1<= 5.7.7 41-32

innodb 执行purge的线程数量,可以用于加快purge的速度。

innodb_random_read_ahead

在线可以调整数据类型默认值合法值
Yesbooleanoffon/off

是否打开innodb随机读的预读取机制来优化io消耗。

innodb_read_ahead_threshold

在线可以调整数据类型默认值合法值
Yesint560-64

如果innodb顺序地读入innodb_read_ahead_threshold个页,则之后异步读出该段所有的页到内存。

innodb_read_io_threads

在线可以调整数据类型默认值合法值
Noint41-64

innodb用于读取数据的io线程数量。

innodb_read_only

在线可以调整数据类型默认值合法值
Nobooleanoffon/off

使用readonly模式启动innodb,专用于要求实例无法修改数据文件的场景,比如多实例共享。

innodb_replication_delay

在线可以调整数据类型默认值合法值
Yesint00-4294967295

如果达到innodb_thread_concurrency上限,允许延迟的毫秒数。

innodb_rollback_on_timeout

在线可以调整数据类型默认值合法值
Nobooleanoffoff/on

如果打开设置,回滚不是只回滚最近的语句,而是回滚整个事务。

innodb_rollback_segments

在线可以调整数据类型默认值合法值
Yesint1281-128

定义有多少回滚段应该在系统表空间中。将会被innodb_undo_logs替代。

innodb_saved_page_number_debug

在线可以调整数据类型默认值合法值
Yesint00--2**23-1

与innodb_fil_make_page_dirty_debug合作,弄脏指定块。

innodb_sort_buffer_size

在线可以调整数据类型默认值合法值
Noint104857665536-67108864

指定创建索引的时候,排序用缓存的大小。

innodb_spin_wait_delay

在线可以调整数据类型默认值合法值
Yesint60-4294967295

请求spin锁的最大间隔。这个值实际取决于硬件和操作系统调度,并不会必须延后指定时间请求锁。

innodb_stats_auto_recalc

在线可以调整数据类型默认值合法值
Yesbooleanonon/off

让innodb自己刷新统计信息,目前的计算使用的是表内10%的数据。

innodb_stats_method

在线可以调整数据类型默认值合法值
Yesenumerationnulls_equalnulls_equal/nulls_unequal/nulls_ignored

指定innodb在采集信息的时候,如何处理null值。nulls_equal假定null都相等,nulls_unequal假定null都不等,nulls_ignored不考虑null值。

innodb_stats_on_metadata

在线可以调整数据类型默认值合法值
Yesbooleanoffon/off

指定innodb在查看元数据的语句执行的时候,对表的统计信息重新采集。

innodb_stats_persistent

在线可以调整数据类型默认值合法值
Yesbooleanonon/off

决策innodb的索引决策数据是否持久化到磁盘上。这个参数必须在建表前指定才可以,或者也可以在create,alter语句中采用STATS_PERSISTENT语法指定。

innodb_stats_persistent_sample_pages

在线可以调整数据类型默认值合法值
Yesint20数字

计算统计信息的时候,使用多少索引页用于计算。

innodb_stats_sample_pages

在线可以调整数据类型默认值合法值
Yesint81--2**64-1

采用innodb_stats_transient_sample_pages替换。

innodb_stats_transient_sample_pages

在线可以调整数据类型默认值合法值
Yesint8数字

计算统计信息的时候,使用多少索引页用于计算。与innodb_stats_persistent_sample_pages区别在于,是否启用了innodb_stats_persistent。

innodb_status_output

在线可以调整数据类型默认值合法值
Yesbooleanoffon/off

是否打开innodb status的输出。

innodb_status_output_locks

在线可以调整数据类型默认值合法值
Yesbooleanoffon/off

是否打开innodb的锁监视器。打开的话,会在show engine innodb status里面输出多余的锁信息,也可以把输出输出到错误日志。

innodb_strict_mode

在线可以调整数据类型默认值合法值
Yesbooleanoff <=5.7.6 onon/off

对于部分非法操作,innodb返回错误而不是警告。

innodb_support_xa

在线可以调整数据类型默认值合法值
Yesbooleanonon/off

innodb是否支持XA事务,在事务准备阶段,会有一次多余的磁盘操作。

从5.7.10开始,innodb的XA事务支持,无法使用这个参数控制,默认打开,这个参数已经需要废弃。

innodb_sync_array_size

在线可以调整数据类型默认值合法值
Noint11-1024

同步列表的长度,对于超大量并发等待的线程处理,需要调整大这个参数。

innodb_sync_debug

在线可以调整数据类型默认值合法值
Nobooleanoffon/off

启用innodb同步debug模式,5.7.8之前,必须在编译的时候指定,5.7.8之后,可以使用这个参数控制。

innodb_sync_spin_loops

在线可以调整数据类型默认值合法值
Yesint304096-4294967295

一个线程等待innodb mutex直到失败为止的重试次数。

innodb_table_locks

在线可以调整数据类型默认值合法值
Yesbooleanonon/off

5.7之前,innodb表锁需要配合autocommit=0以及innodb_table_locks=1才能正确添加。

5.7之后,显式通过lock语句加锁不需要这个参数配合,隐式加锁仍热需要这个参数配合。

innodb_temp_data_file_path

在线可以调整数据类型默认值合法值
Nostringibtmp1:12M:autoextend合法值

指定innodb临时文件的数据文件位置,大小等。所有非压缩临时表都使用同一个临时表空间,压缩的临时表会使用tmpdir指定的目录下每个表单独的数据文件。

innodb_thread_concurrency

在线可以调整数据类型默认值合法值
Yesint00-1000

innodb维护的用于指定用户事务的线程数,0为无限制。

innodb_thread_sleep_delay

在线可以调整数据类型默认值合法值
Yesint100000-18446744073709551615<=5.7.3 1000000

innodb线程在添加到队列前需要sleep的时间,单位为毫秒,可以使用innodb_adaptive_max_sleep_delay得到这个值的动态调度。

innodb_tmpdir

在线可以调整数据类型默认值合法值
Yesstring 目录名null目录

主要用于在线alter执行使用。默认使用mysql的tmpdir。避免大表导致的临时空间使用满。

innodb_trx_purge_view_update_only_debug

在线可以调整数据类型默认值合法值
Yesbooleanoffon/off

在执行purge前,刷新purge视图,用于debug。

innodb_trx_rseg_n_slots_debug

在线可以调整数据类型默认值合法值
Yesint00-1024

限制debug时候,undo可用slot的数量。

innodb_undo_directory

在线可以调整数据类型默认值合法值
Nostring.目录名

innodb独立 undo表空间的数据文件目录。

innodb_undo_log_truncate

在线可以调整数据类型默认值合法值
Yesbooleanoffon/off

只有独立表空间才支持undo表空间自动truncate。当undo文件超过innodb_max_undo_log_size之后,就会被truncate。

innodb_undo_logs

在线可以调整数据类型默认值合法值
Yesint1280-128

设置innodb undo段的总数量。因为临时表空间会占用32个undo段,这个值必须设置为32以上才可以算是有效值。对于独立undo表空间,这个值必须大于33才算有效值。每个undo段可以支持1024个事务。当前实际可用的undo段,可以参考Innodb_available_undo_logs状态值。

innodb_undo_tablespaces

在线可以调整数据类型默认值合法值
Noint00-126 <=5.7.7 95

innodb独立表空间实际的文件数量,与undo段的关系是一对多,默认情况会直接使用系统表空间。

innodb_use_native_aio

在线可以调整数据类型默认值合法值
Nobooleanonon/off

决策是否使用linux原生的aio机制。

innodb_use_sys_malloc

在线可以调整数据类型默认值合法值
Nobooleanonon/off

是否使用linux原生的内存分配机制,在5.7.4已经废弃。

innodb_version

innodb版本号,实际上是mysql的版本号,无法变更。

innodb_write_io_threads

在线可以调整数据类型默认值合法值
Noint41-64

innodb写操作的线程数量,设置的时候可以参考innodb_read_io_threads。

转载于:https://my.oschina.net/llzx373/blog/652074

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值