10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 下载本手册
PDF(美国高级主任)- 41.2 mb
PDF (A4)- 41.3 mb
PDF (RPM)- 39.5 mb
HTML下载(TGZ)- 9.3 mb
HTML下载(Zip)- 9.3 mb
HTML下载(RPM)- 7.8 mb
手册页(TGZ)- 260.6 kb
手册页(Zip)- 371.8 kb
信息(Gzip)- 4.0 mb
信息(邮政编码)- 4.0 mb
本手册节选

MySQL 8.0参考手册/InnoDB存储引擎/ InnoDB启动选项和系统变量

15.14 InnoDB启动选项和系统变量


InnoDB命令选项

  • ——innodb [=价值

    命令行格式 ——innodb(=价值)
    弃用 是的
    类型 枚举
    默认值
    有效值

    控件的加载InnoDB存储引擎,如果服务器是用InnoDB支持。此选项具有三状态格式,可能的值为,或.看到InnoDB,使用——innodb =了——skip-innodb.在本例中,因为默认存储引擎是InnoDB,服务器不会启动,除非你也使用——default-storage-engine而且——default-tmp-storage-engine为永久和其他引擎设置默认值临时表。

    InnoDB存储引擎不能再禁用,并且——innodb =了而且——skip-innodb选项已弃用,并且没有任何效果。使用它们会导致警告。预计这些选项将在未来的MySQL版本中被删除。

  • ——innodb-status-file

    命令行格式 ——innodb-status-file[={|在}]
    类型 布尔
    默认值

    ——innodb-status-file启动选项控制是否InnoDB创建一个名为innodb_status。pid并写入数据目录显示引擎innodb状态大约每15秒输出一次。

    innodb_status。pid文件默认不创建。要创建它,请开始mysqld——innodb-status-file选择。InnoDB当服务器正常关闭时删除文件。如果发生异常关机,可能需要手动删除状态文件。

    ——innodb-status-file选项用于临时使用,如显示引擎innodb状态输出生成会影响性能,并且innodb_status。pid随着时间的推移,文件可能会变得相当大。

    相关信息请参见

    ——skip-innodb

    禁用InnoDB存储引擎。参见——innodb

InnoDB系统变量

用于复制设置中的持久性和一致性InnoDB事务:

有关副本上最能适应意外停止的设置组合的信息,请参见

许多操作系统和一些磁盘硬件会欺骗“刷新到磁盘”操作。他们可能会告诉你mysqld同花顺发生了,即使它没有发生。在这种情况下,即使使用推荐的设置,事务的持久性也不能保证,在最坏的情况下,停电可能会造成损坏InnoDB数据。在SCSI磁盘控制器或磁盘本身中使用电池支持的磁盘缓存可以加快文件刷新速度,并使操作更安全。您还可以尝试在硬件缓存中禁用磁盘写的缓存。

  • innodb_flush_method

    命令行格式 ——innodb-flush-method =值
    系统变量 innodb_flush_method
    范围 全球
    动态 没有
    SET_VAR提示应用 没有
    类型 字符串
    默认值(Unix) fsync
    默认值(Windows) 无缓冲的
    有效值(Unix)

    fsync

    O_DSYNC

    littlesync

    nosync

    O_DIRECT

    O_DIRECT_NO_FSYNC

    有效值(Windows)

    无缓冲的

    正常的

    定义用于的方法InnoDBfsync.Windows系统默认值为无缓冲的

    innodb_flush_method类unix系统的选项包括:

    • fsync0InnoDB使用fsync ()刷新数据和日志文件的系统调用。fsync是默认设置。

    • O_DSYNC1InnoDB使用O_SYNC打开并刷新日志文件,然后fsync ()刷新数据文件。InnoDB不使用O_DSYNC因为它在很多Unix系统上都有问题。

    • littlesync2:该选项用于内部性能测试,目前不支持。使用风险自负。

    • nosync3.:该选项用于内部性能测试,目前不支持。使用风险自负。

    • O_DIRECT4InnoDB使用O_DIRECT(或译:()在Solaris上)打开数据文件,并使用fsync ()刷新数据和日志文件。此选项在某些GNU/Linux版本、FreeBSD和Solaris上可用。

    • O_DIRECT_NO_FSYNCInnoDB使用O_DIRECT刷新I/O,但跳过fsync ()每次写操作后的系统调用。

      在MySQL 8.0.14之前,此设置不适合XFS和EXT4等文件系统,这些文件系统需要一个fsync ()同步文件系统元数据更改的系统调用。如果您不确定文件系统是否需要fsync ()系统调用同步文件系统元数据的变化,使用O_DIRECT代替。

      从MySQL 8.0.14开始,fsync ()在创建新文件之后、增加文件大小之后和关闭文件之后调用,以确保同步文件系统元数据的更改。的fsync ()每次写操作后仍然会跳过系统调用。

      如果重做日志文件和数据文件位于不同的存储设备上,并且在数据文件写入从非电池支持的设备缓存中刷新之前发生意外退出,则可能导致数据丢失。如果您使用或打算为重做日志文件和数据文件使用不同的存储设备,并且您的数据文件驻留在具有缓存的设备上,且该缓存没有电池支持,请使用O_DIRECT代替。

    innodb_flush_methodWindows系统的选项包括:

    • 无缓冲的0InnoDB使用模拟异步I/O和非缓冲I/O。

    • 正常的1InnoDB使用模拟异步I/O和缓冲I/O。

    每个设置如何影响性能取决于硬件配置和工作负载。对您的特定配置进行基准测试,以决定使用哪个设置,或者是否保持默认设置。检查Innodb_data_fsyncs查看状态变量的总数fsync ()调用每个设置。工作负载中读写操作的混合可能会影响设置的执行方式。例如,在一个具有硬件RAID控制器和电池支持的写缓存的系统上,O_DIRECT是否可以帮助避免双缓冲之间InnoDB缓冲池和操作系统文件系统缓存。在一些系统中InnoDB数据和日志文件位于SAN上,默认值为或O_DSYNC对于大量读取的工作负载来说可能更快选择语句。始终使用反映生产环境的硬件和工作负载测试此参数。有关一般I/O调优建议,请参见innodb_dedicated_server启用时,innodb_flush_method值如果没有显式定义,则会自动配置。有关更多信息,请参见

    innodb_flush_neighbors

    命令行格式 ——innodb-flush-neighbors = #
    系统变量 innodb_flush_neighbors
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 枚举
    默认值 0
    有效值

    0

    1

    2

    指定是否InnoDB

  • 当表数据存储在传统的

    innodb_flush_sync

    命令行格式 ——innodb-flush-sync[={|在}]
    系统变量 innodb_flush_sync
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 布尔
    默认值

    innodb_flush_sync变量,在默认情况下是启用的innodb_io_capacity设置为在I/O活动爆发时被忽略innodb_io_capacity设置,禁用innodb_flush_sync

    控件的配置信息innodb_flush_sync变量,看到

    innodb_flushing_avg_loops

    命令行格式 ——innodb-flushing-avg-loops = #
    系统变量 innodb_flushing_avg_loops
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 30.
    最小值 1
    最大值 1000

    的迭代次数InnoDB保持以前计算的刷新状态快照,控制刷新的速度

    innodb_force_load_corrupted

    命令行格式 ——innodb-force-load-corrupted[={|在}]
    系统变量 innodb_force_load_corrupted
    范围 全球
    动态 没有
    SET_VAR提示应用 没有
    类型 布尔
    默认值

    许可证InnoDB在启动时加载标记为已损坏的表。仅在故障排除期间使用,以恢复无法访问的数据。故障排除完成后,请禁用此设置并重新启动服务器。

  • innodb_force_recovery

    命令行格式 ——innodb-force-recovery = #
    系统变量 innodb_force_recovery
    范围 全球
    动态 没有
    SET_VAR提示应用 没有
    类型 整数
    默认值 0
    最小值 0
    最大值 6

    innodb_force_recovery,请参阅

    仅在紧急情况下将此变量设置为大于0的值,以便启动InnoDB扔掉你的桌子。作为安全措施,InnoDB防止插入更新,或删除操作时innodb_force_recovery大于0。一个innodb_force_recovery4位或4位以上的设置InnoDB进入只读模式。

    这些限制可能导致复制管理命令失败并报错,因为复制存储了副本状态日志InnoDB表。

  • innodb_fsync_threshold

    命令行格式 ——innodb-fsync-threshold = #
    介绍了 8.0.13
    系统变量 innodb_fsync_threshold
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 0
    最小值 0
    最大值 2 * * 64 - 1

    默认情况下,当InnoDB创建一个新的数据文件,如新的日志文件或表空间文件,该文件在被刷新到磁盘之前完全写入操作系统缓存,这可能会导致一次发生大量的磁盘写活动。若要强制从操作系统缓存中定期刷新较小的数据,可以使用innodb_fsync_threshold变量定义阈值(以字节为单位)。当达到字节阈值时,操作系统缓存的内容将被刷新到磁盘。默认值0强制执行默认行为,即只有在文件完全写入缓存之后才将数据刷新到磁盘。

    在多个MySQL实例使用相同存储设备的情况下,指定一个阈值来强制较小的周期性刷新可能是有益的。例如,创建一个新的MySQL实例及其相关的数据文件可能会导致大量的磁盘写活动,从而影响使用相同存储设备的其他MySQL实例的性能。配置阈值有助于避免写活动中的这种激增。

  • innodb_ft_aux_table

    系统变量 innodb_ft_aux_table
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 字符串

    控件的限定名称InnoDB表中包含全文索引。此变量用于诊断目的,只能在运行时设置。例如:

    SET GLOBAL innodb_ft_aux_table = 'test/t1';

    在将此变量设置为格式中的名称后db_name/table_name,INFORMATION_SCHEMAINNODB_FT_INDEX_TABLEINNODB_FT_INDEX_CACHEINNODB_FT_CONFIGINNODB_FT_DELETED,INNODB_FT_BEING_DELETED显示指定表的有关搜索索引的信息。

    有关更多信息,请参见

    innodb_ft_cache_size

    命令行格式 ——innodb-ft-cache-size = #
    系统变量 innodb_ft_cache_size
    范围 全球
    动态 没有
    SET_VAR提示应用 没有
    类型 整数
    默认值 8000000
    最小值 1600000
    最大值 80000000

    分配的内存(以字节为单位)InnoDB全文搜索索引缓存,它在内存中保存已解析的文档,同时创建InnoDB全文索引。时,索引插入和更新才提交到磁盘innodb_ft_cache_size已达到尺寸限制。innodb_ft_cache_size在每个表的基础上定义缓存大小。要为所有表设置全局限制,请参见innodb_ft_total_cache_size

    有关更多信息,请参见

    innodb_ft_enable_diag_print

    命令行格式 ——innodb-ft-enable-diag-print[={|在}]
    系统变量 innodb_ft_enable_diag_print
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 布尔
    默认值

    是否启用附加的全文搜索诊断输出。此选项主要用于高级FTS调试,大多数用户不感兴趣。输出被打印到错误日志中,包括如下信息:

    • FTS索引同步进度(当达到FTS缓存限制时)。例如:

      ft同步表测试,删除计数:100大小:10000字节同步字:100
    • FTS优化进度。例如:

      FTS_OPTIMIZE:优化“mysql”FTS_OPTIMIZE:处理“mysql”
    • FTS索引构建进度。例如:

      处理的文档数量:1000
    • 对于FTS查询,将打印查询解析树、单词权重、查询处理时间和内存使用情况。例如:

      FTS搜索处理时间:1秒:100毫秒:行10000全搜索内存:245666(字节),行10000
  • innodb_ft_enable_stopword

    命令行格式 ——innodb-ft-enable-stopword[={|在}]
    系统变量 innodb_ft_enable_stopword
    范围 全球、会话
    动态 是的
    SET_VAR提示应用 没有
    类型 布尔
    默认值

    的集合InnoDB全文在创建索引时创建索引。如果innodb_ft_user_stopword_table选项设置后,停止词从该表中取出。否则,如果innodb_ft_server_stopword_table选项设置后,停止词从该表中取出。否则,将使用内置的默认停止词集。

    有关更多信息,请参见

    innodb_ft_max_token_size

    命令行格式 ——innodb-ft-max-token-size = #
    系统变量 innodb_ft_max_token_size
    范围 全球
    动态 没有
    SET_VAR提示应用 没有
    类型 整数
    默认值 84
    最小值 10
    最大值 84

    类中存储的单词的最大字符长度InnoDB全文索引。对这个值设置限制可以减少索引的大小,从而通过省略长关键字或不是真正的单词且不太可能是搜索词的任意字母集合来加快查询速度。

    有关更多信息,请参见

    innodb_ft_min_token_size

    命令行格式 ——innodb-ft-min-token-size = #
    系统变量 innodb_ft_min_token_size
    范围 全球
    动态 没有
    SET_VAR提示应用 没有
    类型 整数
    默认值 3.
    最小值 0
    最大值 16

    类中存储的单词的最小长度InnoDB全文索引。增加这个值可以减少索引的大小,从而通过省略在搜索上下文中不太重要的常见单词(如英语单词)来加快查询速度一个而且.对于使用CJK(中国、日本、韩国)字符集的内容,指定值为1。

    有关更多信息,请参见

    innodb_ft_num_word_optimize

    命令行格式 ——innodb-ft-num-word-optimize = #
    系统变量 innodb_ft_num_word_optimize
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 2000
    最小值 1000
    最大值 10000

    每次处理的字数优化表操作InnoDB全文索引。由于对包含全文搜索索引的表进行批量插入或更新操作可能需要大量的索引维护来合并所有更改,因此您可能需要执行一系列的操作优化表每个语句都从上一个语句开始。

    有关更多信息,请参见

    innodb_ft_result_cache_limit

    命令行格式 ——innodb-ft-result-cache-limit = #
    系统变量 innodb_ft_result_cache_limit
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 2000000000
    最小值 1000000
    最大值 2 * * 32-1

    InnoDB全文搜索查询结果缓存限制(以字节为单位定义)每个全文搜索查询或每个线程。中级和期末InnoDB全文搜索查询结果在内存中处理。使用innodb_ft_result_cache_limit对全文搜索查询结果缓存设置大小限制,以避免在非常大的情况下过度消耗内存InnoDB全文搜索查询结果(例如,数百万或数亿行)。在处理全文搜索查询时,将根据需要分配内存。如果达到结果缓存大小限制,则返回一个错误,表明查询超过了允许的最大内存。

    的最大值innodb_ft_result_cache_limit对于所有平台类型和位大小为2**32-1。

  • innodb_ft_server_stopword_table

    命令行格式 ——innodb-ft-server-stopword-table = db_name / table_name
    系统变量 innodb_ft_server_stopword_table
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 字符串
    默认值

    此选项用于指定您自己的选项InnoDB全文索引stopword列表为所有InnoDB表。来配置自己的停止词列表InnoDB表,使用innodb_ft_user_stopword_table

    innodb_ft_server_stopword_table到包含停止词列表的表的名称,格式为db_name/table_name

    在进行配置之前,停止字表必须已经存在innodb_ft_server_stopword_tableinnodb_ft_enable_stopword必须启用,并且innodb_ft_server_stopword_table属性之前,必须先配置全文索引。

    停止词表必须是InnoDB表,包含单个VARCHAR列命名价值

    有关更多信息,请参见

    innodb_ft_sort_pll_degree

    命令行格式 ——innodb-ft-sort-pll-degree = #
    系统变量 innodb_ft_sort_pll_degree
    范围 全球
    动态 没有
    SET_VAR提示应用 没有
    类型 整数
    默认值 2
    最小值 1
    最大值 32

    对象中并行用于索引和标记文本的线程数InnoDB全文索引。innodb_sort_buffer_size

  • innodb_ft_total_cache_size

    命令行格式 ——innodb-ft-total-cache-size = #
    系统变量 innodb_ft_total_cache_size
    范围 全球
    动态 没有
    SET_VAR提示应用 没有
    类型 整数
    默认值 640000000
    最小值 32000000
    最大值 1600000000

    对象分配的总内存(以字节为单位)InnoDB所有表的全文搜索索引缓存。创建大量的表,每个表有一个全文搜索索引,可能会消耗大量的可用内存。innodb_ft_total_cache_size为所有全文搜索索引定义全局内存限制,以帮助避免过多的内存消耗。如果索引操作达到全局限制,将触发强制同步。

    有关更多信息,请参见

    innodb_ft_user_stopword_table

    命令行格式 ——innodb-ft-user-stopword-table = db_name / table_name
    系统变量 innodb_ft_user_stopword_table
    范围 全球、会话
    动态 是的
    SET_VAR提示应用 没有
    类型 字符串
    默认值

    此选项用于指定您自己的选项InnoDB全文索引特定表上的停止词列表。为所有人配置自己的停止词列表InnoDB表,使用innodb_ft_server_stopword_table

    innodb_ft_user_stopword_table到包含停止词列表的表的名称,格式为db_name/table_name

    在进行配置之前,停止字表必须已经存在innodb_ft_user_stopword_tableinnodb_ft_enable_stopword必须启用,并且innodb_ft_user_stopword_table在创建全文索引。

    停止词表必须是InnoDB表,包含单个VARCHAR列命名价值

    有关更多信息,请参见

    innodb_idle_flush_pct

    命令行格式 ——innodb-idle-flush-pct = #
    介绍了 8.0.18
    系统变量 innodb_idle_flush_pct
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 One hundred.
    最小值 0
    最大值 One hundred.

    限制页面刷新InnoDB是空闲的。的innodb_idle_flush_pct值是一个百分比innodb_io_capacity设置,它定义每秒可用的I/O操作数InnoDB.有关更多信息,请参见

    innodb_io_capacity

    命令行格式 ——innodb-io-capacity = #
    系统变量 innodb_io_capacity
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 200
    最小值 One hundred.
    最大值(64位平台) 2 * * 64 - 1
    最大值(32位平台) 2 * * 32-1

    innodb_io_capacity变量定义了每秒可执行的IOPS (I /O operations per second)InnoDB后台任务,如innodb_io_capacity变量,看到

    innodb_io_capacity_max

    命令行格式 ——innodb-io-capacity-max = #
    系统变量 innodb_io_capacity_max
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 看描述
    最小值 One hundred.
    最大值(32位平台) 2 * * 32-1
    最大值(Unix, 64位平台) 2 * * 64 - 1
    最大值(Windows, 64位平台) 2 * * 32-1

    如果冲洗活动滞后,InnoDB可以以比?定义的更高的每秒I/O操作速率(IOPS)更积极地刷新innodb_io_capacity变量。的innodb_io_capacity_max变量定义IOPS的最大值InnoDB在这种情况下的后台任务。

    控件的配置信息innodb_io_capacity_max变量,看到

    innodb_limit_optimistic_insert_debug

    命令行格式 ——innodb-limit-optimistic-insert-debug = #
    系统变量 innodb_limit_optimistic_insert_debug
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 0
    最小值 0
    最大值 2 * * 32-1

    限制每个记录的数量WITH_DEBUGCMake选择。

  • innodb_lock_wait_timeout

    命令行格式 ——innodb-lock-wait-timeout = #
    系统变量 innodb_lock_wait_timeout
    范围 全球、会话
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 50
    最小值 1
    最大值 1073741824

    时间的长度以秒为单位InnoDBInnoDB事务最多等待这么多秒来对行进行写访问,然后发出以下错误:

    ERROR 1205 (HY000):锁定等待超时;尝试重新启动事务

    当发生锁等待超时时,当前语句为——innodb-rollback-on-timeout选择。另请参阅innodb_lock_wait_timeout适用于InnoDB行锁。MySQLInnoDB此超时不适用于等待表锁。

    锁等待超时值不适用于innodb_deadlock_detect启用(默认)是因为InnoDB立即检测死锁并回滚其中一个死锁事务。当innodb_deadlock_detect被禁用,InnoDB依赖于innodb_lock_wait_timeout用于发生死锁时的事务回滚。看到innodb_lock_wait_timeout可以在运行时使用集全球设置会话声明。改变了全球设置需要足够的权限来设置全局系统变量(参见会话设置innodb_lock_wait_timeout,只影响该客户。

  • innodb_log_buffer_size

    命令行格式 ——innodb-log-buffer-size = #
    系统变量 innodb_log_buffer_size
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 16777216
    最小值 1048576
    最大值 4294967295

    缓冲区的大小,以字节为单位InnoDB对象的写入

    innodb_log_checkpoint_fuzzy_now

    命令行格式 ——innodb-log-checkpoint-fuzzy-now[={|在}]
    介绍了 8.0.13
    系统变量 innodb_log_checkpoint_fuzzy_now
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 布尔
    默认值

    将此调试选项启用为强制InnoDB编写模糊检查点。类编译调试支持时,此选项才可用WITH_DEBUGCMake选择。

  • innodb_log_checkpoint_now

    命令行格式 ——innodb-log-checkpoint-now[={|在}]
    系统变量 innodb_log_checkpoint_now
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 布尔
    默认值

    将此调试选项启用为强制InnoDB编写检查点。类编译调试支持时,此选项才可用WITH_DEBUGCMake选择。

  • innodb_log_checksums

    命令行格式 ——innodb-log-checksums[={|在}]
    系统变量 innodb_log_checksums
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 布尔
    默认值

    启用或禁用重做日志页的校验和。

    innodb_log_checksums =对使CRC-32C重做日志页的校验和算法。当innodb_log_checksums则重做日志页校验和字段的内容将被忽略。

    重做日志头页和重做日志检查点页上的校验和永远不会被禁用。

  • innodb_log_compressed_pages

    命令行格式 ——innodb-log-compressed-pages[={|在}]
    系统变量 innodb_log_compressed_pages
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 布尔
    默认值

    指定innodb_log_compressed_pages的不同版本时可能发生的损坏zlib恢复时使用压缩算法。如果你确定zlib版本不可更改,您可以禁用innodb_log_compressed_pages为修改压缩数据的工作负载减少重做日志的生成。

    来衡量启用或禁用的效果innodb_log_compressed_pages,比较两个设置在相同工作负载下的重做日志生成情况。度量重做日志生成的选项包括观察日志序列号(LSN)日志的部分显示引擎innodb状态输出,或监控Innodb_os_log_written写入重做日志文件的字节数的状态。

    相关信息请参见

    innodb_log_file_size

    命令行格式 ——innodb-log-file-size = #
    系统变量 innodb_log_file_size
    范围 全球
    动态 没有
    SET_VAR提示应用 没有
    类型 整数
    默认值 50331648
    最小值 4194304
    最大值 512GB / innodb_log_files_in_group .使用实例

    以字节为单位的大小innodb_log_file_sizeinnodb_log_files_in_group)不能超过最大值(略小于512GB)。例如,一对255 GB的日志文件接近限制,但没有超过它。默认值为48MB。

    通常,日志文件的组合大小应该足够大,以便服务器能够平滑工作负载活动的高峰和低谷,这通常意味着有足够的重做日志空间来处理超过一个小时的写活动。该值越大,缓冲池中需要的检查点刷新活动就越少,从而节省磁盘I/O。较大的日志文件也使innodb_log_file_size是4 mb。

    相关信息请参见innodb_dedicated_server启用时,innodb_log_file_size值如果没有显式定义,则会自动配置。有关更多信息,请参见

    innodb_log_files_in_group

    命令行格式 ——innodb-log-files-in-group = #
    系统变量 innodb_log_files_in_group
    范围 全球
    动态 没有
    SET_VAR提示应用 没有
    类型 整数
    默认值 2
    最小值 2
    最大值 One hundred.

    的数量InnoDB以循环方式写入文件。默认值(也是推荐值)是2。文件的位置由innodb_log_group_home_dir.日志文件的合并大小(innodb_log_file_sizeinnodb_log_files_in_group)最大可达512GB。

    相关信息请参见

    innodb_log_group_home_dir

    命令行格式 ——innodb-log-group-home-dir = dir_name
    系统变量 innodb_log_group_home_dir
    范围 全球
    动态 没有
    SET_VAR提示应用 没有
    类型 目录名称

    的目录路径InnoDBinnodb_log_files_in_group.如果您没有指定任何InnoDB日志变量,默认是创建两个文件名ib_logfile0而且ib_logfile1在MySQL数据目录下。日志文件大小由innodb_log_file_size系统变量。

    相关信息请参见

    innodb_log_spin_cpu_abs_lwm

    命令行格式 ——innodb-log-spin-cpu-abs-lwm = #
    系统变量 innodb_log_spin_cpu_abs_lwm
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 80
    最小值 0
    最大值 4294967295

    定义在等待刷新重做时用户线程不再旋转的最小CPU使用量。该值表示为CPU核心使用率的总和。例如,默认80为单个CPU核的80%。在具有多核处理器的系统上,值150表示一个CPU内核的使用率为100%,另一个CPU内核的使用率为50%。

    相关信息请参见

    innodb_log_spin_cpu_pct_hwm

    命令行格式 ——innodb-log-spin-cpu-pct-hwm = #
    系统变量 innodb_log_spin_cpu_pct_hwm
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 50
    最小值 0
    最大值 One hundred.

    定义在等待刷新重做时用户线程不再旋转的最大CPU使用量。该值表示为所有CPU核的总处理能力之和的百分比。默认值为50%。例如,对于一个拥有4个CPU核的服务器,两个CPU核的使用率为100%,则相当于其CPU处理能力总和的50%。

    innodb_log_spin_cpu_pct_hwm变量尊重处理器相关性。例如,如果服务器有48个核,但是mysqld进程只固定在4个CPU核上,其他44个CPU核被忽略。

    相关信息请参见

    innodb_log_wait_for_flush_spin_hwm

    命令行格式 ——innodb-log-wait-for-flush-spin-hwm = #
    系统变量 innodb_log_wait_for_flush_spin_hwm
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 400
    最小值 0
    最大值(64位平台) 2 * * 64 - 1
    最大值(32位平台) 2 * * 32-1

    定义用户线程在等待刷新重做时不再旋转的最大平均日志刷新时间。缺省值是400微秒。

    相关信息请参见

    innodb_log_write_ahead_size

    命令行格式 ——innodb-log-write-ahead-size = #
    系统变量 innodb_log_write_ahead_size
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 8192
    最小值 512(日志文件块大小)
    最大值 等于innodb_page_size

    以字节为单位定义重做日志的预写块大小。为了避免read-on-write,设置innodb_log_write_ahead_size匹配操作系统或文件系统缓存块大小。缺省值为8192字节。当重做日志的预写块大小与操作系统或文件系统缓存块大小不匹配,导致重做日志块没有完全缓存到操作系统或文件系统时,就会发生写时读。

    的有效值innodb_log_write_ahead_size的倍数InnoDB日志文件块大小(2n).最小值为InnoDB日志文件块大小(512)。当指定了最小值时,不会发生预写。最大值等于innodb_page_size价值。的值innodb_log_write_ahead_size它比innodb_page_size值时,innodb_log_write_ahead_size设置被截断为innodb_page_size价值。

    设置innodb_log_write_ahead_size与操作系统或文件系统缓存块大小相关的值过低会导致read-on-write.将该值设置得过高可能会对fsync由于同时写入几个块,日志文件写入的性能。

    相关信息请参见

    innodb_log_writer_threads

    命令行格式 ——innodb-log-writer-threads[={|在}]
    介绍了 8.0.22
    系统变量 innodb_log_writer_threads
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 布尔
    默认值

    启用专用的日志写入线程,用于将重做日志记录从日志缓冲区写入系统缓冲区,并将系统缓冲区刷新到重做日志文件。专用日志写入器线程可以提高高并发性系统的性能,但对于低并发性系统,禁用专用日志写入器线程可以提供更好的性能。

    有关更多信息,请参见

    innodb_lru_scan_depth

    命令行格式 ——innodb-lru-scan-depth = #
    系统变量 innodb_lru_scan_depth
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 1024
    最小值 One hundred.
    最大值(64位平台) 2 * * 64 - 1
    最大值(32位平台) 2 * * 32-1

    的算法和启发式影响的参数InnoDBinnodb_lru_scan_depth,从一个较低的值开始,并向上配置设置,目标是很少看到零空闲页面。另外,考虑调整innodb_lru_scan_depth当更改缓冲池实例的数量时,由于innodb_lru_scan_depthinnodb_buffer_pool_instances定义页清理器线程每秒执行的工作量。

    相关信息请参见

    innodb_max_dirty_pages_pct

    命令行格式 ——innodb-max-dirty-pages-pct = #
    系统变量 innodb_max_dirty_pages_pct
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 数字
    默认值 90
    最小值 0
    最大值 99.99

    InnoDB试图innodb_max_dirty_pages_pct设置为冲洗活动建立目标。不影响冲洗速度。有关管理刷新速率的信息,请参见

    innodb_max_dirty_pages_pct_lwm

    命令行格式 ——innodb-max-dirty-pages-pct-lwm = #
    系统变量 innodb_max_dirty_pages_pct_lwm
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 数字
    默认值 10
    最小值 0
    最大值 99.99

    定义表示百分比的低水位线innodb_max_dirty_pages_pct价值。有关更多信息,请参见

    innodb_max_purge_lag

    命令行格式 ——innodb-max-purge-lag = #
    系统变量 innodb_max_purge_lag
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 0
    最小值 0
    最大值 4294967295

    定义所需的最大清除延迟。如果超过此值,则施加延迟插入更新,删除操作,以允许时间清除赶上。默认值为0,这意味着没有最大清除延迟和延迟。

    有关更多信息,请参见

    innodb_max_purge_lag_delay

    命令行格式 ——innodb-max-purge-lag-delay = #
    系统变量 innodb_max_purge_lag_delay
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 0
    最小值 0
    最大值 10000000

    属性时施加的延迟的最大延迟(以微秒为单位)innodb_max_purge_lag超过阈值。指定的innodb_max_purge_lag_delay属性计算的延迟时间上限innodb_max_purge_lag公式。

    有关更多信息,请参见

    innodb_max_undo_log_size

    命令行格式 ——innodb-max-undo-log-size = #
    系统变量 innodb_max_undo_log_size
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 1073741824
    最小值 10485760
    最大值 2 * * 64 - 1

    为undo表空间定义一个阈值大小。如果undo表空间超过阈值,当innodb_undo_log_truncate启用。默认值为1073741824 bytes (1024 MiB)。

    有关更多信息,请参见

    innodb_merge_threshold_set_all_debug

    命令行格式 ——innodb-merge-threshold-set-all-debug = #
    系统变量 innodb_merge_threshold_set_all_debug
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 50
    最小值 1
    最大值 50

    为覆盖当前的索引页定义满页百分比值MERGE_THRESHOLD为当前在字典缓存中的所有索引设置。类编译调试支持时,此选项才可用WITH_DEBUGCMake选择。相关信息请参见

    innodb_monitor_disable

    命令行格式 模式——innodb-monitor-disable ={计数器模块| | |所有}
    系统变量 innodb_monitor_disable
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 字符串

    禁用InnoDBINFORMATION_SCHEMA。INNODB_METRICS表格有关使用信息,请参见innodb_monitor_disable =“门闩”禁用统计信息收集显示引擎innodb互斥锁.有关更多信息,请参见

    innodb_monitor_enable

    命令行格式 模式——innodb-monitor-enable ={计数器模块| | |所有}
    系统变量 innodb_monitor_enable
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 字符串

    使InnoDBINFORMATION_SCHEMA。INNODB_METRICS表格有关使用信息,请参见innodb_monitor_enable =“门闩”为以下对象启用统计信息收集显示引擎innodb互斥锁.有关更多信息,请参见

    innodb_monitor_reset

    命令行格式 模式——innodb-monitor-reset ={计数器模块| | |所有}
    系统变量 innodb_monitor_reset
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 枚举
    默认值
    有效值

    计数器

    模块

    模式

    所有

    重置的计数值InnoDBINFORMATION_SCHEMA。INNODB_METRICS表格有关使用信息,请参见innodb_monitor_reset =“门闩”重置上报的统计信息显示引擎innodb互斥锁.有关更多信息,请参见

    innodb_monitor_reset_all

    命令行格式 模式——innodb-monitor-reset-all ={计数器模块| | |所有}
    系统变量 innodb_monitor_reset_all
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 枚举
    默认值
    有效值

    计数器

    模块

    模式

    所有

    重置的所有值(最小值、最大值等)InnoDBINFORMATION_SCHEMA。INNODB_METRICS表格有关使用信息,请参见

    innodb_numa_interleave

    命令行格式 ——innodb-numa-interleave[={|在}]
    系统变量 innodb_numa_interleave
    范围 全球
    动态 没有
    SET_VAR提示应用 没有
    类型 布尔
    默认值

    启用NUMA交错内存策略,用于分配InnoDB缓冲池。当innodb_numa_interleave则NUMA内存策略设置为MPOL_INTERLEAVEmysqld的过程。后InnoDB分配缓冲池时,NUMA内存策略设置为MPOL_DEFAULT.为innodb_numa_interleave选项,MySQL必须在支持numa的Linux系统上编译。

    CMake设置默认值WITH_NUMA值,该值基于当前平台是否具有NUMA支持。有关更多信息,请参见

    innodb_old_blocks_pct

    命令行格式 ——innodb-old-blocks-pct = #
    系统变量 innodb_old_blocks_pct
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 37
    最小值 5
    最大值 95

    属性的大约百分比InnoDBinnodb_old_blocks_time

    有关更多信息,请参见

    innodb_old_blocks_time

    命令行格式 ——innodb-old-blocks-time = #
    系统变量 innodb_old_blocks_time
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 1000
    最小值 0
    最大值 2 * * 32-1

    非零值可以防止innodb_old_blocks_pct.有关更多信息,请参见

    innodb_online_alter_log_max_size

    命令行格式 ——innodb-online-alter-log-max-size = #
    系统变量 innodb_online_alter_log_max_size
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 134217728
    最小值 65536
    最大值 2 * * 64 - 1

    指定期间使用的临时日志文件大小的上限(以字节为单位)InnoDB表。每个创建的索引或修改的表都有一个这样的日志文件。这个日志文件存储DDL操作期间在表中插入、更新或删除的数据。的值扩展临时日志文件innodb_sort_buffer_size的最大值innodb_online_alter_log_max_size.如果临时日志文件超过最大大小限制,则ALTER TABLE操作失败,所有未提交的并发DML操作将回滚。因此,该选项的大值允许在在线DDL操作期间发生更多的DML,但也延长了DDL操作结束时锁定表以应用日志中的数据的时间。

  • innodb_open_files

    命令行格式 ——innodb-open-files = #
    系统变量 innodb_open_files
    范围 全球
    动态 没有
    SET_VAR提示应用 没有
    类型 整数
    默认值 -1(意味着autosizing;不要分配这个文字值)
    最小值 10
    最大值 4294967295

    只有当你有很多的时候,这个变量才有意义InnoDB.ibd文件MySQL可以一次保持打开状态。最小值为10。缺省值为300innodb_file_per_table未启用,且300和table_open_cache否则。

    用于的文件描述符.ibd文件是为了InnoDB只表。类所指定的对象是独立的open_files_limit系统变量,并且不影响表缓存的操作。有关一般I/O调优建议,请参见innodb_open_files要超过的限制,阻止其他文件被打开。从MySQL 8.0.24开始,临时表空间不算作打开文件。

  • innodb_optimize_fulltext_only

    命令行格式 ——innodb-optimize-fulltext-only[={|在}]
    系统变量 innodb_optimize_fulltext_only
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 布尔
    默认值

    改变方式优化表作用于InnoDB表。打算在维护操作期间暂时启用InnoDB表与全文索引。

    默认情况下,优化表中的数据重新组织优化表跳过表数据的重组,而是处理新添加、删除和更新的令牌数据InnoDB全文索引。有关更多信息,请参见

    innodb_page_cleaners

    命令行格式 ——innodb-page-cleaners = #
    系统变量 innodb_page_cleaners
    范围 全球
    动态 没有
    SET_VAR提示应用 没有
    类型 整数
    默认值 4
    最小值 1
    最大值 64

    从缓冲池实例中清除脏页的页清除线程数。页面清理线程执行刷新列表和LRU刷新。当有多个页清理线程时,每个缓冲池实例的缓冲池刷新任务被分配给空闲的页清理线程。的innodb_page_cleaners缺省值为4。如果页清理线程的数量超过缓冲池实例的数量,则innodb_page_cleaners自动设置为与innodb_buffer_pool_instances

    如果在将脏页从缓冲池实例刷新到数据文件时,工作负载受写- io限制,并且如果系统硬件有可用容量,则增加页清理线程的数量可能有助于提高写- io吞吐量。

    多线程页面清理器支持扩展到关机和恢复阶段。

    setpriority ()系统调用在Linux平台上使用,在Linux平台上支持它mysqld执行用户有权给予page_cleaner线程优先级高于其他MySQL和InnoDB线程,以帮助页面刷新与当前工作负载保持同步。setpriority ()这表示支持InnoDB公司信息:

    [注]InnoDB:如果mysqld执行用户被授权,可以修改page cleaner线程优先级。参见setpriority()的手册页。

    对于服务器启动和关闭不是由systemd管理的系统,mysqld执行用户授权可在/etc/security/limits.conf.例如,如果mysqld是在mysql用户,可以授权mysql将这些行添加到/etc/security/limits.conf

    Mysql硬nice -20 Mysql软nice -20

    对于systemd管理的系统,可以通过指定LimitNICE = -20在一个本地化的systemd配置文件中。例如,创建一个名为override.conf/etc/systemd/system/mysqld.service.d / override.conf并添加以下条目:

    [服务]LimitNICE = -20

    在创造或改变之后override.conf,重新加载systemd配置,然后告诉systemd重新启动MySQL服务:

    systemctl daemon-reload systemctl restart mysqld # RPM平台systemctl restart mysql # Debian平台

    有关使用本地化的systemd配置文件的详细信息,请参见mysqld执行用户,使用命令,验证配置的结果不错的的限制mysqld过程:

    Shell > cat /proc/mysqld_pid/limits | grep nice最大nice优先级18446744073709551596 18446744073709551596
  • innodb_page_size

    命令行格式 ——innodb-page-size = #
    系统变量 innodb_page_size
    范围 全球
    动态 没有
    SET_VAR提示应用 没有
    类型 枚举
    默认值 16384
    有效值

    4096

    8192

    16384

    32768

    65536

    指定了InnoDBinnodb_page_size只能在初始化MySQL实例之前配置,之后不能更改。如果未指定值,则使用默认页面大小初始化实例。看到ROW_FORMAT =压缩不支持以下情况innodb_page_size设置为32KB或64KB。为innodb_page_size = 32 kb,区段大小为2MB。为innodb_page_size = 64 kb,区段大小为4MB。innodb_log_buffer_size当使用32KB或64KB页面大小时,应至少设置为16M(默认值)。

    默认的16KB或更大的页面大小适用于广泛的InnoDB接近存储设备块大小的页大小可以最小化重写到磁盘的未更改数据量。

    第一个系统表空间数据文件的最小文件大小(ibdata1)则视乎innodb_page_size价值。看到innodb_data_file_path选项描述以获取更多信息。

    一个MySQL实例使用特定的InnoDB页面大小不能使用来自使用不同页面大小的实例的数据文件或日志文件。

    有关一般I/O调优建议,请参见

    innodb_parallel_read_threads

    命令行格式 ——innodb-parallel-read-threads = #
    介绍了 8.0.14
    系统变量 innodb_parallel_read_threads
    范围 会话
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 4
    最小值 1
    最大值 256

    定义可用于并行聚集索引读取的线程数。MySQL 8.0.17开始支持并行扫描分区。并行读线程可以改进检查表的性能。InnoDB操作期间,读取聚类索引两次检查表操作。第二次读取可以并行执行。此特性不适用于二级索引扫描。的innodb_parallel_read_threads会话变量必须设置为大于1的值才能发生并行聚集索引读取。用于执行并行群集索引读取的实际线程数由innodb_parallel_read_threads设置或要扫描的索引子树的数目,以较小者为准。扫描期间读入缓冲池的页面保存在缓冲池LRU列表的尾部,以便在需要空闲缓冲池页面时可以快速丢弃它们。

    从MySQL 8.0.17开始,最大并行读线程数(256)是所有客户端连接的线程总数。如果达到线程限制,连接将退回到使用单个线程。

  • innodb_print_all_deadlocks

    命令行格式 ——innodb-print-all-deadlocks[={|在}]
    系统变量 innodb_print_all_deadlocks
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 布尔
    默认值

    启用此选项后,所有InnoDB用户事务记录在mysqld显示引擎innodb状态命令。偶尔InnoDB死锁并不一定是个问题,因为InnoDB立即检测条件并自动回滚其中一个事务。如果应用程序没有适当的错误处理逻辑来检测回滚并重试其操作,则可以使用此选项排除发生死锁的原因。大量死锁可能表明需要重新构造该问题的事务选择……更新语句,以便每个事务以相同的顺序访问表,从而避免死锁条件。

    相关信息请参见

    innodb_print_ddl_logs

    命令行格式 ——innodb-print-ddl-logs[={|在}]
    系统变量 innodb_print_ddl_logs
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 布尔
    默认值

    启用此选项会导致MySQL将DDL日志写入stderr.有关更多信息,请参见

    innodb_purge_batch_size

    命令行格式 ——innodb-purge-batch-size = #
    系统变量 innodb_purge_batch_size
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 300
    最小值 1
    最大值 5000

    属性中清除解析和处理的撤消日志页的数目innodb_purge_batch_size通过innodb_purge_threads并将该页数分配给每个清除线程。的innodb_purge_batch_size变量还定义了在通过undo日志进行每128次迭代后清除释放的undo日志页的数量。

    innodb_purge_batch_size选项用于结合使用高级性能调优innodb_purge_threads设置。大多数用户不需要更改innodb_purge_batch_size从默认值开始。

    相关信息请参见

    innodb_purge_threads

    命令行格式 ——innodb-purge-threads = #
    系统变量 innodb_purge_threads
    范围 全球
    动态 没有
    SET_VAR提示应用 没有
    类型 整数
    默认值 4
    最小值 1
    最大值 32

    进程的后台线程数InnoDB

    innodb_purge_rseg_truncate_frequency

    命令行格式 ——innodb-purge-rseg-truncate-frequency = #
    系统变量 innodb_purge_rseg_truncate_frequency
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 128
    最小值 1
    最大值 128

    根据调用清除的次数定义清除系统释放回滚段的频率。undo表空间在其回滚段被释放之前不能被截断。通常,清除系统每调用128次清除一次回滚段。缺省值为128。减少这个值会增加清除线程释放回滚段的频率。

    innodb_purge_rseg_truncate_frequency用于innodb_undo_log_truncate.有关更多信息,请参见

    innodb_random_read_ahead

    命令行格式 ——innodb-random-read-ahead[={|在}]
    系统变量 innodb_random_read_ahead
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 布尔
    默认值

    启用随机InnoDBI / O。

    有关不同类型预读请求的性能注意事项,请参见

    innodb_read_ahead_threshold

    命令行格式 ——innodb-read-ahead-threshold = #
    系统变量 innodb_read_ahead_threshold
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 56
    最小值 0
    最大值 64

    控制线性的灵敏度InnoDB用于将页面预取到InnoDB至少要阅读innodb_read_ahead_threshold对象中按顺序生成的页InnoDB必须按顺序从一个区段读取至少56页,才能为下面的区段启动异步读取。

    属性时,了解通过预读机制读取了多少页,以及在未被访问的情况下从缓冲池中删除了多少页会非常有用innodb_read_ahead_threshold设置。显示引擎innodb状态控件中的计数器信息Innodb_buffer_pool_read_ahead而且Innodb_buffer_pool_read_ahead_evicted全局状态变量,它报告导入显示引擎innodb状态还显示读取预读页面的速率,以及在不被访问的情况下删除这些页面的速率。的每秒平均值基于自最后一次调用以来收集的统计信息显示引擎innodb状态和显示在缓冲池和内存部份显示引擎innodb状态输出。

    有关更多信息,请参见

    innodb_read_io_threads

    命令行格式 ——innodb-read-io-threads = #
    系统变量 innodb_read_io_threads
    范围 全球
    动态 没有
    SET_VAR提示应用 没有
    类型 整数
    默认值 4
    最小值 1
    最大值 64

    用于读操作的I/O线程数InnoDB.写线程对应的是innodb_write_io_threads.有关更多信息,请参见

    在Linux系统上,运行多个MySQL服务器(通常超过12个),默认设置为innodb_read_io_threadsinnodb_write_io_threads,以及Linuxaio-max-nr设置可能超出系统限制。理想情况下,增加aio-max-nr设置;作为一种解决方法,您可以减少一个或两个MySQL变量的设置。

  • innodb_read_only

    命令行格式 ——innodb-read-only[={|在}]
    系统变量 innodb_read_only
    范围 全球
    动态 没有
    SET_VAR提示应用 没有
    类型 布尔
    默认值

    开始InnoDB只读模式。用于在只读媒体上分发数据库应用程序或数据集。也可以在数据仓库中用于在多个实例之间共享相同的数据目录。有关更多信息,请参见innodb_read_only控件的系统变量阻止创建和删除表InnoDB存储引擎。从MySQL 8.0开始启用innodb_read_only禁止所有存储引擎执行上述操作。中数据字典表的创建和删除操作mysql系统数据库,但那些表使用InnoDB存储引擎,不能修改时innodb_read_only启用。同样的原则也适用于需要修改数据字典表的其他表操作。例子:

    此外,其他表中mysql系统数据库使用InnoDBMySQL 8.0存储引擎。将这些表设置为只读会限制修改它们的操作。例子:

  • innodb_redo_log_archive_dirs

    命令行格式 ——innodb-redo-log-archive-dirs
    介绍了 8.0.17
    系统变量 innodb_redo_log_archive_dirs
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 字符串
    默认值

    定义可以在其中创建重做日志归档文件的标记目录。您可以在一个以分号分隔的列表中定义多个带标签的目录。例如:

    innodb_redo_log_archive_dirs = ' label1: / backups1; label2: / backups2 '

    标签可以是除冒号(:)以外的任何字符串,冒号是不允许的。也允许使用空标签,但在这种情况下仍然需要冒号(:)。

    必须指定路径,且目录必须存在。路径可以包含冒号(':'),但不允许使用分号(;)。

  • innodb_redo_log_encrypt

    命令行格式 ——innodb-redo-log-encrypt[={|在}]
    系统变量 innodb_redo_log_encrypt
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 布尔
    默认值

    控件加密的表的重做日志数据InnoDB

    innodb_replication_delay

    命令行格式 ——innodb-replication-delay = #
    系统变量 innodb_replication_delay
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 0
    最小值 0
    最大值 4294967295

    如果复制服务器上的复制线程延迟(以毫秒为单位)innodb_thread_concurrency是达到了。

  • innodb_rollback_on_timeout

    命令行格式 ——innodb-rollback-on-timeout[={|在}]
    系统变量 innodb_rollback_on_timeout
    范围 全球
    动态 没有
    SET_VAR提示应用 没有
    类型 布尔
    默认值

    InnoDB——innodb-rollback-on-timeout指定时,事务超时原因InnoDB中止并回滚整个事务。

    有关更多信息,请参见

    innodb_rollback_segments

    命令行格式 ——innodb-rollback-segments = #
    系统变量 innodb_rollback_segments
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 128
    最小值 1
    最大值 128

    innodb_rollback_segments定义InnoDB页大小和分配给每个事务的撤消日志数。有关更多信息,请参见

    innodb_saved_page_number_debug

    命令行格式 ——innodb-saved-page-number-debug = #
    系统变量 innodb_saved_page_number_debug
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 0
    最大值 2 * * 23-1

    保存页码。设置innodb_fil_make_page_dirty_debug选项将弄脏定义的页面innodb_saved_page_number_debug.的innodb_saved_page_number_debug方法编译调试支持时,才可用WITH_DEBUGCMake选择。

  • innodb_segment_reserve_factor

    命令行格式 ——innodb-segment-reserve-factor = #
    介绍了 8.0.26
    系统变量 innodb_segment_reserve_factor
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 数字
    默认值 12.5
    最小值 0.03
    最大值 40

    定义保留为空页的表空间文件段页的百分比。在引入这个变量之前,保留页面的百分比被设置为恒定值12.5%。为了与以前的版本保持一致,innodb_segment_reserve_factor默认设置也是12.5%。

    为将来的增长保留一定百分比的文件段页,以便b树中的页可以连续地分配。修改保留页面百分比的能力允许解决由于保留页面百分比过高而导致的潜在碎片和存储使用效率低下的问题。

  • innodb_sort_buffer_size

    命令行格式 ——innodb-sort-buffer-size = #
    系统变量 innodb_sort_buffer_size
    范围 全球
    动态 没有
    SET_VAR提示应用 没有
    类型 整数
    默认值 1048576
    最小值 65536
    最大值 67108864

    对象创建期间用于对数据进行排序的排序缓冲区的大小InnoDB索引。指定的大小定义了读入内存进行内部排序然后写入磁盘的数据量。这个过程被称为运行.在合并阶段,读取并合并指定大小的缓冲区对。设置越大,运行和合并的次数就越少。

    此排序区域仅用于索引创建期间的归并排序,而不适用于以后的索引维护操作。当索引创建完成时,缓冲区将被释放。

    此选项的值还控制在此期间扩展临时日志文件以记录并发DML的数量ALTER TABLE创建表语句创建索引,则分配3个缓冲区,每个缓冲区的大小由该选项定义。此外,辅助指针被分配到排序缓冲区中的行,以便排序可以在指针上运行(而不是在排序操作期间移动行)。

    对于一个典型的排序操作,可以使用如下公式来估计内存消耗:

    (6 /*FTS_NUM_AUX_INDEX*/ * (3*@@GLOBAL.innodb_sort_buffer_size) + 2 * number_of_partitions * number_of_secondary_indexes_created * (@@GLOBAL.innodb_sort_buffer_size/dict_index_get_min_size(index)*/) * 8 /* 64bit sizeof *buf->tuples*/")

    @@GLOBAL.innodb_sort_buffer_size / dict_index_get_min_size(指数)表示持有的最大元组。2 * (@@GLOBAL.innodb_sort_buffer_size/*dict_index_get_min_size(index)*/) * 8 /* buf->元组的64位大小*/指示已分配的辅助指针。

    请注意

    对于32位,乘以4而不是8。

    对于全文索引上的并行排序,请乘以innodb_ft_sort_pll_degree设置:

    (6 /*FTS_NUM_AUX_INDEX*/ * @@GLOBAL.innodb_ft_sort_pll_degree)
  • innodb_spin_wait_delay

    命令行格式 ——innodb-spin-wait-delay = #
    系统变量 innodb_spin_wait_delay
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 6
    最小值 0
    最大值(64位平台,≤8.0.13) 2 * * 64 - 1
    最大值(32位平台,≤8.0.13) 2 * * 32-1
    最大值(≥8.0.14) 1000

    投票之间的最大延迟innodb_spin_wait_pause_multiplier变量,用于更好地控制自旋锁轮询延迟的持续时间。

    有关更多信息,请参见

    innodb_spin_wait_pause_multiplier

    命令行格式 ——innodb-spin-wait-pause-multiplier = #
    介绍了 8.0.16
    系统变量 innodb_spin_wait_pause_multiplier
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 50
    最小值 1
    最大值 One hundred.

    定义一个乘数值,用于确定在线程等待获取互斥锁或rw-lock时发生的自旋等待循环中PAUSE指令的数量。

    有关更多信息,请参见

    innodb_stats_auto_recalc

    命令行格式 ——innodb-stats-auto-recalc[={|在}]
    系统变量 innodb_stats_auto_recalc
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 布尔
    默认值

    原因InnoDB自动重新计算innodb_stats_persistent选项已启用。自动统计重新计算也可以通过指定配置STATS_PERSISTENT = 1在一个创建表ALTER TABLE声明。用于生成统计信息的采样数据量由innodb_stats_persistent_sample_pages变量。

    有关更多信息,请参见

    innodb_stats_include_delete_marked

    命令行格式 ——innodb-stats-include-delete-marked[={|在}]
    系统变量 innodb_stats_include_delete_marked
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 布尔
    默认值

    默认情况下,InnoDB在计算统计信息时读取未提交的数据。对于从表中删除行的未提交事务,InnoDB排除在计算行估计和索引统计信息时已删除标记的记录,这可能导致使用事务隔离级别以外的事务并发在表上操作的其他事务的非最佳执行计划读未提交.为了避免这种情况,innodb_stats_include_delete_marked能保证启用吗InnoDB在计算持久优化器统计信息时包括删除标记的记录。

    innodb_stats_include_delete_marked启用,分析表重新计算统计信息时考虑已删除标记的记录。

    innodb_stats_include_delete_marked全局设置是否会影响所有人InnoDB表。它仅适用于持久优化器统计信息。

    相关信息请参见

    innodb_stats_method

    命令行格式 ——innodb-stats-method =值
    系统变量 innodb_stats_method
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 枚举
    默认值 nulls_equal
    有效值

    nulls_equal

    nulls_unequal

    nulls_ignored

    服务器如何处理收集时的值InnoDB表。允许的值为nulls_equalnulls_unequal,nulls_ignored.为nulls_equal,所有索引值被认为是相等的,并形成一个大小等于数量的单个值组值。为nulls_unequal价值观被认为是不平等的,并且每个形成一个大小为1的不同值组。为nulls_ignored值被忽略。

    用于生成表统计信息的方法会影响优化器为查询执行选择索引的方式,如中所述

    innodb_stats_on_metadata

    命令行格式 ——innodb-stats-on-metadata[={|在}]
    系统变量 innodb_stats_on_metadata
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 布尔
    默认值

    此选项仅适用于优化器innodb_stats_persistent当单独的表创建或更改时禁用STATS_PERSISTENT = 0.有关更多信息,请参见innodb_stats_on_metadata启用,InnoDB更新非持久性显示表状态或在访问INFORMATION_SCHEMA。表INFORMATION_SCHEMA。统计数据表。(这些更新类似于发生在分析表)。当禁用,InnoDB在这些操作期间不更新统计信息。禁用该设置可以提高具有大量表或索引的模式的访问速度。它还可以提高稳定性InnoDB表。

    要更改设置,发出该语句SET GLOBAL innodb_stats_on_metadata=模式,在那里模式要么是(或10).更改设置需要足够的权限来设置全局系统变量(请参阅

    innodb_stats_persistent

    命令行格式 ——innodb-stats-persistent[={|在}]
    系统变量 innodb_stats_persistent
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 布尔
    默认值

    指定是否InnoDB索引统计信息被持久化到磁盘。否则,统计数据可能会经常重新计算,从而导致数据的变化innodb_stats_persistent在创建表之前,或使用全局级别的STATS_PERSISTENT的条款创建表而且ALTER TABLE语句覆盖系统范围的设置并为各个表配置持久统计信息。

    有关更多信息,请参见

    innodb_stats_persistent_sample_pages

    命令行格式 ——innodb-stats-persistent-sample-pages = #
    系统变量 innodb_stats_persistent_sample_pages
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 20.

    索引数分析表.增加该值可以提高索引统计的准确性,从而提高分析表对于一个InnoDB表格有关更多信息,请参见

    设置一个较高的值innodb_stats_persistent_sample_pages可能会导致冗长的分析表执行时间。来估计访问的数据库页的数量分析表,请参阅innodb_stats_persistent_sample_pages仅适用于以下情况innodb_stats_persistent对表启用;当innodb_stats_persistent被禁用,innodb_stats_transient_sample_pages适用。

  • innodb_stats_transient_sample_pages

    命令行格式 ——innodb-stats-transient-sample-pages = #
    系统变量 innodb_stats_transient_sample_pages
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 8

    索引数分析表.缺省值为8。增加该值可以提高索引统计的准确性,从而提高InnoDB表或重新计算统计信息。有关更多信息,请参见

    设置一个较高的值innodb_stats_transient_sample_pages可能会导致冗长的分析表执行时间。来估计访问的数据库页的数量分析表,请参阅innodb_stats_transient_sample_pages仅适用于以下情况innodb_stats_persistent对于表禁用;当innodb_stats_persistent启用,innodb_stats_persistent_sample_pages适用。取代了innodb_stats_sample_pages.有关更多信息,请参见

    innodb_status_output

    命令行格式 ——innodb-status-output[={|在}]
    系统变量 innodb_status_output
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 布尔
    默认值

    启用或禁用标准的定期输出InnoDB班长。也用于与innodb_status_output_locks控件的定时输出InnoDB锁的班长。有关更多信息,请参见

    innodb_status_output_locks

    命令行格式 ——innodb-status-output-locks[={|在}]
    系统变量 innodb_status_output_locks
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 布尔
    默认值

    启用或禁用InnoDB锁的班长。启用时,InnoDB锁监视器打印关于锁的附加信息显示引擎innodb状态输出和在定期输出打印到MySQL错误日志。的周期性输出。InnoDB锁监控器是作为标准的一部分印刷的InnoDB监控输出。标准的InnoDB的监视器因此必须启用InnoDB锁定监视器,定期打印数据到MySQL错误日志。有关更多信息,请参见

    innodb_strict_mode

    命令行格式 ——innodb-strict-mode[={|在}]
    系统变量 innodb_strict_mode
    范围 全球、会话
    动态 是的
    SET_VAR提示应用 没有
    类型 布尔
    默认值

    innodb_strict_mode启用,InnoDB在某些条件下返回错误而不是警告。

    innodb_strict_mode启用,InnoDB在某些情况下引发错误条件,而不是发出警告并处理指定的语句(可能会出现意外行为)。这类似于sql_mode在MySQL中,它控制MySQL接受什么SQL语法,并决定它是默默地忽略错误,还是验证输入语法和数据值。

    innodb_strict_mode的语法错误的处理创建表ALTER TABLE创建索引,优化表语句。innodb_strict_mode还启用记录大小检查,以便插入更新永远不会因为记录对所选页面大小来说太大而失败。

    Oracle建议启用innodb_strict_mode当使用ROW_FORMAT而且KEY_BLOCK_SIZE条款创建表ALTER TABLE,创建索引语句。当innodb_strict_mode被禁用,InnoDB忽略冲突的子句,并在消息日志中仅使用警告创建表或索引。生成的表可能具有与预期不同的特征,例如在尝试创建压缩表时缺乏压缩支持。当innodb_strict_mode启用时,此类问题将立即生成错误,并且不会创建表或索引。

    您可以启用或禁用innodb_strict_mode启动时,在命令行上mysqld或在MySQL中innodb_strict_mode在运行时使用语句SET [GLOBAL|SESSION] innodb_strict_mode=模式,在那里模式要么是.改变了全球设置需要足够的权限来设置全局系统变量(参见会话设置innodb_strict_mode,该设置仅影响该客户端。

    innodb_strict_mode不适用于innodb_strict_mode.有关更多信息,请参见

    innodb_sync_array_size

    命令行格式 ——innodb-sync-array-size = #
    系统变量 innodb_sync_array_size
    范围 全球
    动态 没有
    SET_VAR提示应用 没有
    类型 整数
    默认值 1
    最小值 1
    最大值 1024

    定义互斥量/锁等待数组的大小。增加该值将分割用于协调线程的内部数据结构,从而在具有大量等待线程的工作负载中获得更高的并发性。此设置必须在MySQL实例启动时配置,之后不能更改。对于经常产生大量等待线程(通常大于768)的工作负载,建议增加该值。

  • innodb_sync_spin_loops

    命令行格式 ——innodb-sync-spin-loops = #
    系统变量 innodb_sync_spin_loops
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 30.
    最小值 0
    最大值 4294967295

    线程等待对象的次数InnoDB在线程挂起之前释放互斥锁。

  • innodb_sync_debug

    命令行格式 ——innodb-sync-debug[={|在}]
    系统变量 innodb_sync_debug
    范围 全球
    动态 没有
    SET_VAR提示应用 没有
    类型 布尔
    默认值

    属性的同步调试检查InnoDB存储引擎。类编译调试支持时,此选项才可用WITH_DEBUGCMake选择。

  • innodb_table_locks

    命令行格式 ——innodb-table-locks[={|在}]
    系统变量 innodb_table_locks
    范围 全球、会话
    动态 是的
    SET_VAR提示应用 没有
    类型 布尔
    默认值

    如果自动提交= 0InnoDB荣誉锁表;MySQL不返回锁定表…写直到所有其他线程释放了对表的所有锁。的默认值innodb_table_locks等于1,是这个意思吗锁表导致InnoDB内部锁表自动提交= 0

    Innodb_table_locks = 0对显式锁定的表没有影响锁定表…写.它确实对锁在读取或写入的表有影响锁定表…写隐式地(例如,通过触发器)或通过锁定表…读

    相关信息请参见

    innodb_temp_data_file_path

    命令行格式 ——innodb-temp-data-file-path = file_name
    系统变量 innodb_temp_data_file_path
    范围 全球
    动态 没有
    SET_VAR提示应用 没有
    类型 字符串
    默认值 ibtmp1:12M: autoextend

    定义全局临时表空间数据文件的相对路径、名称、大小和属性。全局临时表空间存储对用户创建的临时表所做更改的回滚段。

    如果没有指定innodb_temp_data_file_path,默认行为是创建一个名为ibtmp1innodb_data_home_dir目录中。初始文件大小略大于12MB。

    全局临时表空间数据文件规范的语法包括文件名、文件大小和autoextend而且马克斯属性:

    file_namefile_size[: autoextend[:马克斯:max_file_size]]

    全局临时表空间数据文件不能与其他文件同名InnoDB数据文件。创建全局临时表空间数据文件的任何能力或错误都将被视为致命,并拒绝启动服务器。

    文件大小以KB、MB或GB为单位通过追加来指定KG到大小值。文件大小之和必须略大于12MB。

    单个文件的大小限制由操作系统决定。在支持大文件的操作系统上,文件大小可以超过4GB。不支持对全局临时表空间数据文件使用裸磁盘分区。

    autoextend而且马克斯属性只能用于中最后指定的数据文件innodb_temp_data_file_path设置。例如:

    (mysqld) innodb_temp_data_file_path = ibtmp1:50M; ibtmp2:12M: autoextend:马克斯:500 mb

    autoextend选项会导致数据文件在耗尽空闲空间时自动增加大小。的autoextend增量默认为64MB。若要修改增量,请更改innodb_autoextend_increment变量设置。

    全局临时表空间数据文件的目录路径由定义的路径连接而成innodb_data_home_dir而且innodb_temp_data_file_path

    在运行之前InnoDB在只读模式下,设置innodb_temp_data_file_path到数据目录之外的位置。该路径必须相对于数据目录。例如:

    ——innodb-temp-data-file-path =../../../ tmp / ibtmp1:12M: autoextend

    有关更多信息,请参见

    innodb_temp_tablespaces_dir

    命令行格式 ——innodb-temp-tablespaces-dir = dir_name
    介绍了 8.0.13
    系统变量 innodb_temp_tablespaces_dir
    范围 全球
    动态 没有
    SET_VAR提示应用 没有
    类型 目录名称
    默认值 # innodb_temp

    定义位置,其中InnoDB在启动时创建会话临时表空间池。默认位置为# innodb_temp目录中的数据目录。允许使用完全限定路径或相对于数据目录的路径。

    从MySQL 8.0.16开始,会话临时表空间总是存储用户创建的临时表和优化器使用的内部临时表InnoDB.(以前,内部临时表的磁盘上存储引擎由internal_tmp_disk_storage_engine不再支持的系统变量。看到

    innodb_thread_concurrency

    命令行格式 ——innodb-thread-concurrency = #
    系统变量 innodb_thread_concurrency
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 0
    最小值 0
    最大值 1000

    的最大线程数InnoDB.0(默认值)被解释为无限并发(没有限制)。此变量用于高并发系统上的性能调优。

    InnoDB尽量保持内部线程的数量InnoDB小于或等于innodb_thread_concurrency极限。一旦达到限制,就会将其他线程放入先进先出(FIFO)等待线程的队列。等待锁的线程不计算在并发执行线程的数量中。

    正确的设置取决于工作负载和计算环境。如果您的MySQL实例与其他应用程序共享CPU资源,或者您的工作负载或并发用户数正在增长,请考虑设置此变量。测试一个范围的值,以确定提供最佳性能的设置。innodb_thread_concurrency是一个动态变量,允许在实时测试系统上使用不同的设置进行实验。如果某个特定设置性能不佳,您可以快速设置innodb_thread_concurrency回到0。

    使用以下指南来帮助找到和维护一个合适的设置:

    • 如果工作负载的并发用户线程数始终较小且不影响性能,则设置innodb_thread_concurrency = 0(没有限制)。

    • 如果你的工作量一直很重,或者偶尔有高峰,那就设置一个innodb_thread_concurrency数值并调整它,直到找到提供最佳性能的线程数。例如,假设您的系统通常有40到50个用户,但是这个数字会周期性地增加到60、70或更多。通过测试,您会发现性能在80个并发用户的限制下基本保持稳定。在本例中,设置innodb_thread_concurrency到80年。

    • 如果你不想要InnoDB为用户线程使用超过一定数量的虚拟cpu(例如20个虚拟cpu),设置innodb_thread_concurrency到这个数字(或可能更低,取决于性能测试)。如果您的目标是将MySQL与其他应用程序隔离,请考虑绑定mysqld进程专用于虚拟cpu。但是,请注意,独占绑定可能导致非最佳的硬件使用mysqld进程不是一直忙。在这种情况下,可以绑定mysqld但是允许其他应用程序使用部分或全部的虚拟cpu。

      请注意

      从操作系统的角度来看,使用资源管理解决方案来管理如何在应用程序之间共享CPU时间可能比绑定mysqld的过程。例如,您可以将90%的虚拟CPU时间分配给给定的应用程序,同时分配给其他关键进程运行,并在其他关键进程时将该值缩小到40%运行。

    • 在某些情况下,是最优的innodb_thread_concurrency设置可以小于虚拟cpu个数。

    • 一个innodb_thread_concurrency值过高会导致性能下降,因为系统内部和资源的争用增加了。

    • 定期监控和分析您的系统。工作负载、用户数量或计算环境的更改可能要求您调整innodb_thread_concurrency设置。

    值为0将禁用InnoDB内部查询而且队列中的查询的计数器行操作的部分显示引擎innodb状态输出。

    相关信息请参见

    innodb_thread_sleep_delay

    命令行格式 ——innodb-thread-sleep-delay = #
    系统变量 innodb_thread_sleep_delay
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 10000
    最小值 0
    最大值 1000000

    多长时间InnoDB线程在加入InnoDB队列,以微秒为单位。缺省值为10000。值为0将禁用睡眠。你可以设置innodb_adaptive_max_sleep_delay到你允许的最大值innodb_thread_sleep_delay,InnoDB自动调整innodb_thread_sleep_delay向上或向下,取决于当前的线程调度活动。这种动态调整有助于线程调度机制在系统负载较轻或接近满负荷时顺利工作。

    有关更多信息,请参见

    innodb_tmpdir

    命令行格式 ——innodb-tmpdir = dir_name
    系统变量 innodb_tmpdir
    范围 全球、会话
    动态 是的
    SET_VAR提示应用 没有
    类型 目录名称
    默认值

    用于为在线期间创建的临时排序文件定义一个备用目录ALTER TABLE重新构建表的操作。

    在线ALTER TABLE重新构建表的操作也会创建中间表文件与原始表在同一目录。的innodb_tmpdir选项不适用于中间表文件。

    有效值为MySQL数据目录路径以外的任意目录路径。如果值为NULL(默认值),则创建临时文件MySQL临时目录($ TMPDIR在Unix中,%临时%方法指定的目录——tmpdir配置选项)。如果指定了目录,则仅在以下情况下检查目录和权限是否存在innodb_tmpdir使用声明。如果在目录字符串中提供符号链接,则符号链接将被解析并存储为绝对路径。路径长度不能超过512字节。一个在线ALTER TABLE操作报告错误innodb_tmpdir设置为无效目录。innodb_tmpdir覆盖MySQLtmpdir设置,但仅在线ALTER TABLE操作。

    文件配置时需要特权innodb_tmpdir

    innodb_tmpdir属性上的临时文件目录溢出tmpfs文件系统。这种溢出可能是在线期间创建的大型临时排序文件的结果ALTER TABLE重新构建表的操作。

    在复制环境中,只考虑复制innodb_tmpdir如果所有服务器具有相同的操作系统环境,则设置。否则,复制innodb_tmpdir设置可能导致在线运行时复制失败ALTER TABLE重新构建表的操作。如果服务器运行环境不同,建议配置innodb_tmpdir分别在每个服务器上。

    有关更多信息,请参见ALTER TABLE操作,看

    innodb_trx_purge_view_update_only_debug

    命令行格式 ——innodb-trx-purge-view-update-only-debug[={|在}]
    系统变量 innodb_trx_purge_view_update_only_debug
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 布尔
    默认值

    暂停清除已删除标记的记录,同时允许更新清除视图。此选项人为地创建了一种情况,即清除视图已更新,但尚未执行清除。类编译调试支持时,此选项才可用WITH_DEBUGCMake选择。

  • innodb_trx_rseg_n_slots_debug

    命令行格式 ——innodb-trx-rseg-n-slots-debug = #
    系统变量 innodb_trx_rseg_n_slots_debug
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 0
    最大值 1024

    设置限制的调试标志TRX_RSEG_N_SLOTS的给定值trx_rsegf_undo_find_free函数查找用于撤销日志段的空闲槽。类编译调试支持时,此选项才可用WITH_DEBUGCMake选择。

  • innodb_undo_directory

    命令行格式 ——innodb-undo-directory = dir_name
    系统变量 innodb_undo_directory
    范围 全球
    动态 没有
    SET_VAR提示应用 没有
    类型 目录名称

    路径是InnoDB创建undo表空间。通常用于将undo表空间放置在不同的存储设备上。

    没有默认值(它是NULL)。如果innodb_undo_directory变量未定义,则在data目录中创建undo表空间。

    默认的undo表空间(innodb_undo_001而且innodb_undo_002)在初始化MySQL实例时创建的innodb_undo_directory变量。

    撤消使用。创建的表空间创建undo表空间方法定义的目录中创建innodb_undo_directory如果未指定不同的路径,则为。

    有关更多信息,请参见

    innodb_undo_log_encrypt

    命令行格式 ——innodb-undo-log-encrypt[={|在}]
    系统变量 innodb_undo_log_encrypt
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 布尔
    默认值

    控件加密的表的撤消日志数据的加密InnoDB

    innodb_undo_log_truncate

    命令行格式 ——innodb-undo-log-truncate[={|在}]
    系统变量 innodb_undo_log_truncate
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 布尔
    默认值

    属性定义的阈值,当表空间被启用时,将其撤销innodb_max_undo_log_size标记为截断。只有undo表空间可以被截断。不支持截断系统表空间中的undo日志。为了进行截断,必须至少有两个undo表空间。

    innodb_purge_rseg_truncate_frequency变量可用于加速undo表空间的截断。

    有关更多信息,请参见

    innodb_undo_tablespaces

    命令行格式 ——innodb-undo-tablespaces = #
    弃用 是的
    系统变量 innodb_undo_tablespaces
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 2
    最小值 2
    最大值 127

    定义InnoDB.缺省值和最小值为2。

    请注意

    innodb_undo_tablespaces变量已弃用,从MySQL 8.0.14开始不再可配置。期望在将来的版本中删除它。

    有关更多信息,请参见

    innodb_use_fdatasync

    命令行格式 ——innodb-use-fdatasync[={|在}]
    介绍了 8.0.26
    系统变量 innodb_use_fdatasync
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 布尔
    默认值

    当启用时,InnoDB使用fdatasync ()而不是fsync ()当将数据刷新到操作系统时。不像fsync (),默认使用,fdatasync ()仅在必要时刷新已访问文件的元数据,在某些场景下提供性能优势。

  • innodb_use_native_aio

    命令行格式 ——innodb-use-native-aio[={|在}]
    系统变量 innodb_use_native_aio
    范围 全球
    动态 没有
    SET_VAR提示应用 没有
    类型 布尔
    默认值

    指定是否使用Linux异步I/O子系统。此变量仅适用于Linux系统,在服务器运行时不能更改。正常情况下,不需要配置该选项,默认启用。

    InnoDB可以在Linux系统上使用。(其他类unix系统继续使用同步I/O调用。)该特性提高了重度I/ o绑定系统的可伸缩性,这些系统通常会显示许多暂挂的读/写显示引擎innodb状态\ g输出。

    用大量的跑步InnoDBI/O线程,特别是在同一台服务器机器上运行多个这样的实例,可能会超出Linux系统的容量限制。在这种情况下,您可能会收到以下错误:

    EAGAIN:指定的maxevents超出了用户的可用事件限制。

    通常可以通过编写更高的限制来解决此错误/proc/sys/fs/aio-max-nr

    但是,如果操作系统中的异步I/O子系统出现问题,则会阻止InnoDB从开始,您可以使用innodb_use_native_aio = 0.此选项也可以在启动过程中自动禁用InnoDB检测潜在的问题,例如组合tmpdir的位置,tmpfs文件系统和不支持AIO的Linux内核tmpfs

    有关更多信息,请参见

    innodb_validate_tablespace_paths

    命令行格式 ——innodb-validate-tablespace-paths[={|在}]
    介绍了 8.0.21
    系统变量 innodb_validate_tablespace_paths
    范围 全球
    动态 没有
    SET_VAR提示应用 没有
    类型 布尔
    默认值

    控制表空间文件路径验证。在启动时,InnoDB如果表空间文件已经移动到其他位置,则根据存储在数据字典中的表空间文件路径验证已知表空间文件的路径。的innodb_validate_tablespace_paths变量允许禁用表空间路径验证。该特性适用于不移动表空间文件的环境。禁用路径验证可以提高具有大量表空间文件的系统的启动时间。

    警告

    在移动表空间文件后禁用表空间路径验证来启动服务器可能会导致未定义的行为。

    有关更多信息,请参见

    innodb_version

    InnoDB版本号。在MySQL 8.0中,为InnoDB不适用,此值是相同的版本服务器编号。

  • innodb_write_io_threads

    命令行格式 ——innodb-write-io-threads = #
    系统变量 innodb_write_io_threads
    范围 全球
    动态 没有
    SET_VAR提示应用 没有
    类型 整数
    默认值 4
    最小值 1
    最大值 64

    用于写操作的I/O线程数InnoDB.缺省值为4。读线程对应的是innodb_read_io_threads.有关更多信息,请参见

    在Linux系统上,运行多个MySQL服务器(通常超过12个),默认设置为innodb_read_io_threadsinnodb_write_io_threads,以及Linuxaio-max-nr设置可能超出系统限制。理想情况下,增加aio-max-nr设置;作为一种解决方法,您可以减少一个或两个MySQL变量的设置。

  • 也要考虑到价值sync_binlog,它控制二进制日志到磁盘的同步。

    有关一般I/O调优建议,请参见