## 15.14 InnoDB 启动选项和系统变量

[](<>)[](<>)

-   真或假的系统变量可以在服务器启动时通过命名来启用，或者通过使用`- 跳过-`字首。例如，启用或禁用`InnoDB`自适应哈希索引，你可以使用[`--innodb-自适应哈希索引`](innodb-parameters.html#sysvar_innodb_adaptive_hash_index)要么[`--skip-innodb-adaptive-hash-index`](innodb-parameters.html#sysvar_innodb_adaptive_hash_index)在命令行上，或[`innodb_adaptive_hash_index`](innodb-parameters.html#sysvar_innodb_adaptive_hash_index)要么`skip_innodb_adaptive_hash_index`在选项文件中。

-   采用数值的系统变量可以指定为`--*`变量名`*=*`价值`*`在命令行上或作为`*`变量名`*=*`价值`*`在选项文件中。

-   许多系统变量可以在运行时更改（参见[第 5.1.9.2 节，“动态系统变量”](dynamic-system-variables.html)）。

-   有关信息`全球的`和`会议`变量范围修饰符，请参阅[`放`](set-variable.html)声明文件。

-   某些选项控制位置和布局`InnoDB`数据文件。[第 15.8.1 节，“InnoDB 启动配置”](innodb-init-startup-configuration.html)解释如何使用这些选项。

-   一些您最初可能不会使用的选项有助于调整`InnoDB`基于机器容量和数据库的性能特征[工作量](glossary.html#glos_workload).

-   有关指定选项和系统变量的更多信息，请参阅[第 4.2.2 节，“指定程序选项”](program-options.html).

[](<>)

**表 15.24 InnoDB 选项和变量参考**

| 姓名 | 命令行 | 选项文件 | 系统变量 | 状态变量 | 变量范围 | 动态的 |
| --- | --- | ---- | ---- | ---- | ---- | --- |
| [守护进程\_内存缓存\_使能够\_二进制日志](innodb-parameters.html#sysvar_daemon_memcached_enable_binlog) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [守护进程\_内存缓存\_引擎\_库\_姓名](innodb-parameters.html#sysvar_daemon_memcached_engine_lib_name) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [守护进程\_内存缓存\_引擎\_库\_小路](innodb-parameters.html#sysvar_daemon_memcached_engine_lib_path) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [守护进程\_内存缓存\_选项](innodb-parameters.html#sysvar_daemon_memcached_option) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [守护进程\_内存缓存\_r\_批\_尺寸](innodb-parameters.html#sysvar_daemon_memcached_r_batch_size) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [守护进程\_内存缓存\_w\_批\_尺寸](innodb-parameters.html#sysvar_daemon_memcached_w_batch_size) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [外国的\_钥匙\_支票](server-system-variables.html#sysvar_foreign_key_checks) |  |  | 是的 |  | 两个都 | 是的 |
| [innodb](innodb-parameters.html#option_mysqld_innodb) | 是的 | 是的 |  |  |  |  |
| [innodb\_自适应\_冲洗](innodb-parameters.html#sysvar_innodb_adaptive_flushing) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_自适应\_冲洗\_长宽高](innodb-parameters.html#sysvar_innodb_adaptive_flushing_lwm) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_自适应\_哈希\_指数](innodb-parameters.html#sysvar_innodb_adaptive_hash_index) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_自适应\_哈希\_指数\_部分](innodb-parameters.html#sysvar_innodb_adaptive_hash_index_parts) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [innodb\_自适应\_最大限度\_睡觉\_延迟](innodb-parameters.html#sysvar_innodb_adaptive_max_sleep_delay) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb_api_bk\_犯罪\_间隔](innodb-parameters.html#sysvar_innodb_api_bk_commit_interval) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb_api\_禁用\_行锁](innodb-parameters.html#sysvar_innodb_api_disable_rowlock) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [innodb_api\_使能够\_二进制日志](innodb-parameters.html#sysvar_innodb_api_enable_binlog) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [innodb_api\_使能够\_mdl](innodb-parameters.html#sysvar_innodb_api_enable_mdl) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [innodb_api_trx\_等级](innodb-parameters.html#sysvar_innodb_api_trx_level) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_自动扩展\_增量](innodb-parameters.html#sysvar_innodb_autoextend_increment) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_自动公司\_锁\_模式](innodb-parameters.html#sysvar_innodb_autoinc_lock_mode) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [innodb\_背景\_降低\_列表\_空的](innodb-parameters.html#sysvar_innodb_background_drop_list_empty) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [Innodb\_缓冲\_水池\_字节\_数据](server-status-variables.html#statvar_Innodb_buffer_pool_bytes_data) |  |  |  | 是的 | 全球的 | 不 |
| [Innodb\_缓冲\_水池\_字节\_肮脏的](server-status-variables.html#statvar_Innodb_buffer_pool_bytes_dirty) |  |  |  | 是的 | 全球的 | 不 |
| [innodb\_缓冲\_水池\_块\_尺寸](innodb-parameters.html#sysvar_innodb_buffer_pool_chunk_size) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [innodb\_缓冲\_水池\_调试](innodb-parameters.html#sysvar_innodb_buffer_pool_debug) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [innodb\_缓冲\_水池\_倾倒\_在\_关掉](innodb-parameters.html#sysvar_innodb_buffer_pool_dump_at_shutdown) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_缓冲\_水池\_倾倒\_现在](innodb-parameters.html#sysvar_innodb_buffer_pool_dump_now) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_缓冲\_水池\_倾倒\_百分比](innodb-parameters.html#sysvar_innodb_buffer_pool_dump_pct) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [Innodb\_缓冲\_水池\_倾倒\_状态](server-status-variables.html#statvar_Innodb_buffer_pool_dump_status) |  |  |  | 是的 | 全球的 | 不 |
| [innodb\_缓冲\_水池\_文件名](innodb-parameters.html#sysvar_innodb_buffer_pool_filename) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_缓冲\_水池\_在\_核\_文件](innodb-parameters.html#sysvar_innodb_buffer_pool_in_core_file) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_缓冲\_水池\_实例](innodb-parameters.html#sysvar_innodb_buffer_pool_instances) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [innodb\_缓冲\_水池\_加载\_中止](innodb-parameters.html#sysvar_innodb_buffer_pool_load_abort) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_缓冲\_水池\_加载\_在\_启动](innodb-parameters.html#sysvar_innodb_buffer_pool_load_at_startup) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [innodb\_缓冲\_水池\_加载\_现在](innodb-parameters.html#sysvar_innodb_buffer_pool_load_now) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [Innodb\_缓冲\_水池\_加载\_状态](server-status-variables.html#statvar_Innodb_buffer_pool_load_status) |  |  |  | 是的 | 全球的 | 不 |
| [Innodb\_缓冲\_水池\_页面\_数据](server-status-variables.html#statvar_Innodb_buffer_pool_pages_data) |  |  |  | 是的 | 全球的 | 不 |
| [Innodb\_缓冲\_水池\_页面\_肮脏的](server-status-variables.html#statvar_Innodb_buffer_pool_pages_dirty) |  |  |  | 是的 | 全球的 | 不 |
| [Innodb\_缓冲\_水池\_页面\_酡](server-status-variables.html#statvar_Innodb_buffer_pool_pages_flushed) |  |  |  | 是的 | 全球的 | 不 |
| [Innodb\_缓冲\_水池\_页面\_自由](server-status-variables.html#statvar_Innodb_buffer_pool_pages_free) |  |  |  | 是的 | 全球的 | 不 |
| [Innodb\_缓冲\_水池\_页面\_锁定](server-status-variables.html#statvar_Innodb_buffer_pool_pages_latched) |  |  |  | 是的 | 全球的 | 不 |
| [Innodb\_缓冲\_水池\_页面\_杂项](server-status-variables.html#statvar_Innodb_buffer_pool_pages_misc) |  |  |  | 是的 | 全球的 | 不 |
| [Innodb\_缓冲\_水池\_页面\_全部的](server-status-variables.html#statvar_Innodb_buffer_pool_pages_total) |  |  |  | 是的 | 全球的 | 不 |
| [Innodb\_缓冲\_水池\_读\_先](server-status-variables.html#statvar_Innodb_buffer_pool_read_ahead) |  |  |  | 是的 | 全球的 | 不 |
| [Innodb\_缓冲\_水池\_读\_先\_被驱逐](server-status-variables.html#statvar_Innodb_buffer_pool_read_ahead_evicted) |  |  |  | 是的 | 全球的 | 不 |
| [Innodb\_缓冲\_水池\_读\_先\_rnd](server-status-variables.html#statvar_Innodb_buffer_pool_read_ahead_rnd) |  |  |  | 是的 | 全球的 | 不 |
| [Innodb\_缓冲\_水池\_读\_要求](server-status-variables.html#statvar_Innodb_buffer_pool_read_requests) |  |  |  | 是的 | 全球的 | 不 |
| [Innodb\_缓冲\_水池\_读](server-status-variables.html#statvar_Innodb_buffer_pool_reads) |  |  |  | 是的 | 全球的 | 不 |
| [Innodb\_缓冲\_水池\_调整大小\_状态](server-status-variables.html#statvar_Innodb_buffer_pool_resize_status) |  |  |  | 是的 | 全球的 | 不 |
| [innodb\_缓冲\_水池\_尺寸](innodb-parameters.html#sysvar_innodb_buffer_pool_size) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [Innodb\_缓冲\_水池\_等待\_自由](server-status-variables.html#statvar_Innodb_buffer_pool_wait_free) |  |  |  | 是的 | 全球的 | 不 |
| [Innodb\_缓冲\_水池\_写\_要求](server-status-variables.html#statvar_Innodb_buffer_pool_write_requests) |  |  |  | 是的 | 全球的 | 不 |
| [innodb\_改变\_缓冲\_最大限度\_尺寸](innodb-parameters.html#sysvar_innodb_change_buffer_max_size) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_改变\_缓冲](innodb-parameters.html#sysvar_innodb_change_buffering) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_改变\_缓冲\_调试](innodb-parameters.html#sysvar_innodb_change_buffering_debug) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_检查点\_禁用](innodb-parameters.html#sysvar_innodb_checkpoint_disabled) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_校验和\_算法](innodb-parameters.html#sysvar_innodb_checksum_algorithm) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb_cmp\_每\_指数\_启用](innodb-parameters.html#sysvar_innodb_cmp_per_index_enabled) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_犯罪\_并发](innodb-parameters.html#sysvar_innodb_commit_concurrency) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_压缩\_调试](innodb-parameters.html#sysvar_innodb_compress_debug) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_压缩\_失败\_临界点\_百分比](innodb-parameters.html#sysvar_innodb_compression_failure_threshold_pct) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_压缩\_等级](innodb-parameters.html#sysvar_innodb_compression_level) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_压缩\_软垫\_百分比\_最大限度](innodb-parameters.html#sysvar_innodb_compression_pad_pct_max) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_并发\_门票](innodb-parameters.html#sysvar_innodb_concurrency_tickets) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_数据\_文件\_小路](innodb-parameters.html#sysvar_innodb_data_file_path) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [Innodb\_数据\_同步](server-status-variables.html#statvar_Innodb_data_fsyncs) |  |  |  | 是的 | 全球的 | 不 |
| [innodb\_数据\_家\_目录](innodb-parameters.html#sysvar_innodb_data_home_dir) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [Innodb\_数据\_待办的\_同步](server-status-variables.html#statvar_Innodb_data_pending_fsyncs) |  |  |  | 是的 | 全球的 | 不 |
| [Innodb\_数据\_待办的\_读](server-status-variables.html#statvar_Innodb_data_pending_reads) |  |  |  | 是的 | 全球的 | 不 |
| [Innodb\_数据\_待办的\_写](server-status-variables.html#statvar_Innodb_data_pending_writes) |  |  |  | 是的 | 全球的 | 不 |
| [Innodb\_数据\_读](server-status-variables.html#statvar_Innodb_data_read) |  |  |  | 是的 | 全球的 | 不 |
| [Innodb\_数据\_读](server-status-variables.html#statvar_Innodb_data_reads) |  |  |  | 是的 | 全球的 | 不 |
| [Innodb\_数据\_写](server-status-variables.html#statvar_Innodb_data_writes) |  |  |  | 是的 | 全球的 | 不 |
| [Innodb\_数据\_书面](server-status-variables.html#statvar_Innodb_data_written) |  |  |  | 是的 | 全球的 | 不 |
| [Innodb_dblwr\_页面\_书面](server-status-variables.html#statvar_Innodb_dblwr_pages_written) |  |  |  | 是的 | 全球的 | 不 |
| [Innodb_dblwr\_写](server-status-variables.html#statvar_Innodb_dblwr_writes) |  |  |  | 是的 | 全球的 | 不 |
| [innodb_ddl\_缓冲\_尺寸](innodb-parameters.html#sysvar_innodb_ddl_buffer_size) | 是的 | 是的 | 是的 |  | 两个都 | 是的 |
| [innodb_ddl\_日志\_碰撞\_重置\_调试](innodb-parameters.html#sysvar_innodb_ddl_log_crash_reset_debug) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb_ddl\_线程](innodb-parameters.html#sysvar_innodb_ddl_threads) | 是的 | 是的 | 是的 |  | 两个都 | 是的 |
| [innodb\_僵局\_探测](innodb-parameters.html#sysvar_innodb_deadlock_detect) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_投入的\_服务器](innodb-parameters.html#sysvar_innodb_dedicated_server) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [innodb\_默认\_排\_格式](innodb-parameters.html#sysvar_innodb_default_row_format) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_目录](innodb-parameters.html#sysvar_innodb_directories) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [innodb\_禁用\_种类\_文件\_缓存](innodb-parameters.html#sysvar_innodb_disable_sort_file_cache) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_双写](innodb-parameters.html#sysvar_innodb_doublewrite) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [innodb\_双写\_批\_尺寸](innodb-parameters.html#sysvar_innodb_doublewrite_batch_size) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [innodb\_双写\_目录](innodb-parameters.html#sysvar_innodb_doublewrite_dir) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [innodb\_双写\_文件](innodb-parameters.html#sysvar_innodb_doublewrite_files) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [innodb\_双写\_页面](innodb-parameters.html#sysvar_innodb_doublewrite_pages) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [innodb\_快速地\_关掉](innodb-parameters.html#sysvar_innodb_fast_shutdown) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_过滤器\_制作\_页\_肮脏的\_调试](innodb-parameters.html#sysvar_innodb_fil_make_page_dirty_debug) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_文件\_每\_桌子](innodb-parameters.html#sysvar_innodb_file_per_table) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_充满\_因素](innodb-parameters.html#sysvar_innodb_fill_factor) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_冲洗\_日志\_在\_暂停](innodb-parameters.html#sysvar_innodb_flush_log_at_timeout) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_冲洗\_日志\_在\_trx\_犯罪](innodb-parameters.html#sysvar_innodb_flush_log_at_trx_commit) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_冲洗\_方法](innodb-parameters.html#sysvar_innodb_flush_method) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [innodb\_冲洗\_邻居](innodb-parameters.html#sysvar_innodb_flush_neighbors) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_冲洗\_同步](innodb-parameters.html#sysvar_innodb_flush_sync) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_冲洗\_平均\_循环](innodb-parameters.html#sysvar_innodb_flushing_avg_loops) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_力量\_加载\_损坏的](innodb-parameters.html#sysvar_innodb_force_load_corrupted) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [innodb\_力量\_恢复](innodb-parameters.html#sysvar_innodb_force_recovery) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [innodb\_同步\_临界点](innodb-parameters.html#sysvar_innodb_fsync_threshold) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_英尺\_辅助\_桌子](innodb-parameters.html#sysvar_innodb_ft_aux_table) |  |  | 是的 |  | 全球的 | 是的 |
| [innodb\_英尺\_缓存\_尺寸](innodb-parameters.html#sysvar_innodb_ft_cache_size) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [innodb\_英尺\_使能够\_诊断\_打印](innodb-parameters.html#sysvar_innodb_ft_enable_diag_print) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_英尺\_使能够\_停用词](innodb-parameters.html#sysvar_innodb_ft_enable_stopword) | 是的 | 是的 | 是的 |  | 两个都 | 是的 |
| [innodb\_英尺\_最大限度\_令牌\_尺寸](innodb-parameters.html#sysvar_innodb_ft_max_token_size) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [innodb\_英尺\_分钟\_令牌\_尺寸](innodb-parameters.html#sysvar_innodb_ft_min_token_size) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [innodb\_英尺\_数\_单词\_优化](innodb-parameters.html#sysvar_innodb_ft_num_word_optimize) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_英尺\_结果\_缓存\_限制](innodb-parameters.html#sysvar_innodb_ft_result_cache_limit) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_英尺\_服务器\_停用词\_桌子](innodb-parameters.html#sysvar_innodb_ft_server_stopword_table) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_英尺\_种类\_pll\_程度](innodb-parameters.html#sysvar_innodb_ft_sort_pll_degree) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [innodb\_英尺\_全部的\_缓存\_尺寸](innodb-parameters.html#sysvar_innodb_ft_total_cache_size) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [innodb\_英尺\_用户\_停用词\_桌子](innodb-parameters.html#sysvar_innodb_ft_user_stopword_table) | 是的 | 是的 | 是的 |  | 两个都 | 是的 |
| [Innodb\_有\_原子\_内置](server-status-variables.html#statvar_Innodb_have_atomic_builtins) |  |  |  | 是的 | 全球的 | 不 |
| [innodb\_闲置的\_冲洗\_百分比](innodb-parameters.html#sysvar_innodb_idle_flush_pct) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb_io\_容量](innodb-parameters.html#sysvar_innodb_io_capacity) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb_io\_容量\_最大限度](innodb-parameters.html#sysvar_innodb_io_capacity_max) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_限制\_乐观的\_插入\_调试](innodb-parameters.html#sysvar_innodb_limit_optimistic_insert_debug) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_锁\_等待\_暂停](innodb-parameters.html#sysvar_innodb_lock_wait_timeout) | 是的 | 是的 | 是的 |  | 两个都 | 是的 |
| [innodb\_日志\_缓冲\_尺寸](innodb-parameters.html#sysvar_innodb_log_buffer_size) | 是的 | 是的 | 是的 |  | 全球的 | 变化 |
| [innodb\_日志\_检查点\_模糊\_现在](innodb-parameters.html#sysvar_innodb_log_checkpoint_fuzzy_now) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_日志\_检查点\_现在](innodb-parameters.html#sysvar_innodb_log_checkpoint_now) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_日志\_校验和](innodb-parameters.html#sysvar_innodb_log_checksums) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_日志\_压缩的\_页面](innodb-parameters.html#sysvar_innodb_log_compressed_pages) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_日志\_文件\_尺寸](innodb-parameters.html#sysvar_innodb_log_file_size) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [innodb\_日志\_文件\_在\_团体](innodb-parameters.html#sysvar_innodb_log_files_in_group) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [innodb\_日志\_团体\_家\_目录](innodb-parameters.html#sysvar_innodb_log_group_home_dir) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [innodb\_日志\_旋转\_中央处理器\_腹肌\_长宽高](innodb-parameters.html#sysvar_innodb_log_spin_cpu_abs_lwm) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_日志\_旋转\_中央处理器\_百分比\_硬件](innodb-parameters.html#sysvar_innodb_log_spin_cpu_pct_hwm) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_日志\_等待\_为了\_冲洗\_旋转\_硬件](innodb-parameters.html#sysvar_innodb_log_wait_for_flush_spin_hwm) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [Innodb\_日志\_等待](server-status-variables.html#statvar_Innodb_log_waits) |  |  |  | 是的 | 全球的 | 不 |
| [innodb\_日志\_写\_先\_尺寸](innodb-parameters.html#sysvar_innodb_log_write_ahead_size) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [Innodb\_日志\_写\_要求](server-status-variables.html#statvar_Innodb_log_write_requests) |  |  |  | 是的 | 全球的 | 不 |
| [innodb\_日志\_作家\_线程](innodb-parameters.html#sysvar_innodb_log_writer_threads) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [Innodb\_日志\_写](server-status-variables.html#statvar_Innodb_log_writes) |  |  |  | 是的 | 全球的 | 不 |
| [innodb\_鲁\_扫描\_深度](innodb-parameters.html#sysvar_innodb_lru_scan_depth) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_最大限度\_肮脏的\_页面\_百分比](innodb-parameters.html#sysvar_innodb_max_dirty_pages_pct) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_最大限度\_肮脏的\_页面\_百分比\_长宽高](innodb-parameters.html#sysvar_innodb_max_dirty_pages_pct_lwm) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_最大限度\_清除\_落后](innodb-parameters.html#sysvar_innodb_max_purge_lag) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_最大限度\_清除\_落后\_延迟](innodb-parameters.html#sysvar_innodb_max_purge_lag_delay) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_最大限度\_撤消\_日志\_尺寸](innodb-parameters.html#sysvar_innodb_max_undo_log_size) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_合并\_临界点\_放\_全部\_调试](innodb-parameters.html#sysvar_innodb_merge_threshold_set_all_debug) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_监视器\_禁用](innodb-parameters.html#sysvar_innodb_monitor_disable) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_监视器\_使能够](innodb-parameters.html#sysvar_innodb_monitor_enable) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_监视器\_重置](innodb-parameters.html#sysvar_innodb_monitor_reset) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_监视器\_重置\_全部](innodb-parameters.html#sysvar_innodb_monitor_reset_all) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [Innodb\_数\_打开\_文件](server-status-variables.html#statvar_Innodb_num_open_files) |  |  |  | 是的 | 全球的 | 不 |
| [innodb\_沼\_交错](innodb-parameters.html#sysvar_innodb_numa_interleave) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [innodb\_老的\_块\_百分比](innodb-parameters.html#sysvar_innodb_old_blocks_pct) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_老的\_块\_时间](innodb-parameters.html#sysvar_innodb_old_blocks_time) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_在线的\_改变\_日志\_最大限度\_尺寸](innodb-parameters.html#sysvar_innodb_online_alter_log_max_size) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_打开\_文件](innodb-parameters.html#sysvar_innodb_open_files) | 是的 | 是的 | 是的 |  | 全球的 | 变化 |
| [innodb\_优化\_全文\_只要](innodb-parameters.html#sysvar_innodb_optimize_fulltext_only) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [Innodb\_操作系统\_日志\_同步](server-status-variables.html#statvar_Innodb_os_log_fsyncs) |  |  |  | 是的 | 全球的 | 不 |
| [Innodb\_操作系统\_日志\_待办的\_同步](server-status-variables.html#statvar_Innodb_os_log_pending_fsyncs) |  |  |  | 是的 | 全球的 | 不 |
| [Innodb\_操作系统\_日志\_待办的\_写](server-status-variables.html#statvar_Innodb_os_log_pending_writes) |  |  |  | 是的 | 全球的 | 不 |
| [Innodb\_操作系统\_日志\_书面](server-status-variables.html#statvar_Innodb_os_log_written) |  |  |  | 是的 | 全球的 | 不 |
| [innodb\_页\_清洁工](innodb-parameters.html#sysvar_innodb_page_cleaners) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [Innodb\_页\_尺寸](server-status-variables.html#statvar_Innodb_page_size) |  |  |  | 是的 | 全球的 | 不 |
| [innodb\_页\_尺寸](innodb-parameters.html#sysvar_innodb_page_size) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [Innodb\_页面\_创建](server-status-variables.html#statvar_Innodb_pages_created) |  |  |  | 是的 | 全球的 | 不 |
| [Innodb\_页面\_读](server-status-variables.html#statvar_Innodb_pages_read) |  |  |  | 是的 | 全球的 | 不 |
| [Innodb\_页面\_书面](server-status-variables.html#statvar_Innodb_pages_written) |  |  |  | 是的 | 全球的 | 不 |
| [innodb\_平行线\_读\_线程](innodb-parameters.html#sysvar_innodb_parallel_read_threads) | 是的 | 是的 | 是的 |  | 会议 | 是的 |
| [innodb\_打印\_全部\_死锁](innodb-parameters.html#sysvar_innodb_print_all_deadlocks) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_打印\_ddl\_日志](innodb-parameters.html#sysvar_innodb_print_ddl_logs) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_清除\_批\_尺寸](innodb-parameters.html#sysvar_innodb_purge_batch_size) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_清除\_rseg\_截短\_频率](innodb-parameters.html#sysvar_innodb_purge_rseg_truncate_frequency) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_清除\_线程](innodb-parameters.html#sysvar_innodb_purge_threads) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [innodb\_随机的\_读\_先](innodb-parameters.html#sysvar_innodb_random_read_ahead) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_读\_先\_临界点](innodb-parameters.html#sysvar_innodb_read_ahead_threshold) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_读\_io\_线程](innodb-parameters.html#sysvar_innodb_read_io_threads) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [innodb\_读\_只要](innodb-parameters.html#sysvar_innodb_read_only) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [innodb\_重做\_日志\_档案\_目录](innodb-parameters.html#sysvar_innodb_redo_log_archive_dirs) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [Innodb\_重做\_日志\_启用](server-status-variables.html#statvar_Innodb_redo_log_enabled) |  |  |  | 是的 | 全球的 | 不 |
| [innodb\_重做\_日志\_加密](innodb-parameters.html#sysvar_innodb_redo_log_encrypt) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_复制\_延迟](innodb-parameters.html#sysvar_innodb_replication_delay) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_回滚\_在\_暂停](innodb-parameters.html#sysvar_innodb_rollback_on_timeout) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [innodb\_回滚\_细分市场](innodb-parameters.html#sysvar_innodb_rollback_segments) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [Innodb\_排\_锁\_当前的\_等待](server-status-variables.html#statvar_Innodb_row_lock_current_waits) |  |  |  | 是的 | 全球的 | 不 |
| [Innodb\_排\_锁\_时间](server-status-variables.html#statvar_Innodb_row_lock_time) |  |  |  | 是的 | 全球的 | 不 |
| [Innodb\_排\_锁\_时间\_平均](server-status-variables.html#statvar_Innodb_row_lock_time_avg) |  |  |  | 是的 | 全球的 | 不 |
| [Innodb\_排\_锁\_时间\_最大限度](server-status-variables.html#statvar_Innodb_row_lock_time_max) |  |  |  | 是的 | 全球的 | 不 |
| [Innodb\_排\_锁\_等待](server-status-variables.html#statvar_Innodb_row_lock_waits) |  |  |  | 是的 | 全球的 | 不 |
| [Innodb\_行\_已删除](server-status-variables.html#statvar_Innodb_rows_deleted) |  |  |  | 是的 | 全球的 | 不 |
| [Innodb\_行\_插入](server-status-variables.html#statvar_Innodb_rows_inserted) |  |  |  | 是的 | 全球的 | 不 |
| [Innodb\_行\_读](server-status-variables.html#statvar_Innodb_rows_read) |  |  |  | 是的 | 全球的 | 不 |
| [Innodb\_行\_更新](server-status-variables.html#statvar_Innodb_rows_updated) |  |  |  | 是的 | 全球的 | 不 |
| [innodb\_已保存\_页\_数字\_调试](innodb-parameters.html#sysvar_innodb_saved_page_number_debug) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_部分\_预订\_因素](innodb-parameters.html#sysvar_innodb_segment_reserve_factor) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_种类\_缓冲\_尺寸](innodb-parameters.html#sysvar_innodb_sort_buffer_size) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [innodb\_旋转\_等待\_延迟](innodb-parameters.html#sysvar_innodb_spin_wait_delay) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_旋转\_等待\_暂停\_乘数](innodb-parameters.html#sysvar_innodb_spin_wait_pause_multiplier) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_统计数据\_汽车\_重新计算](innodb-parameters.html#sysvar_innodb_stats_auto_recalc) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_统计数据\_包括\_删除\_标记](innodb-parameters.html#sysvar_innodb_stats_include_delete_marked) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_统计数据\_方法](innodb-parameters.html#sysvar_innodb_stats_method) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_统计数据\_在\_元数据](innodb-parameters.html#sysvar_innodb_stats_on_metadata) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_统计数据\_执着的](innodb-parameters.html#sysvar_innodb_stats_persistent) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_统计数据\_执着的\_样本\_页面](innodb-parameters.html#sysvar_innodb_stats_persistent_sample_pages) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_统计数据\_短暂的\_样本\_页面](innodb-parameters.html#sysvar_innodb_stats_transient_sample_pages) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb 状态文件](innodb-parameters.html#option_mysqld_innodb-status-file) | 是的 | 是的 |  |  |  |  |
| [innodb\_状态\_输出](innodb-parameters.html#sysvar_innodb_status_output) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_状态\_输出\_锁](innodb-parameters.html#sysvar_innodb_status_output_locks) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_严格的\_模式](innodb-parameters.html#sysvar_innodb_strict_mode) | 是的 | 是的 | 是的 |  | 两个都 | 是的 |
| [innodb\_同步\_大批\_尺寸](innodb-parameters.html#sysvar_innodb_sync_array_size) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [innodb\_同步\_调试](innodb-parameters.html#sysvar_innodb_sync_debug) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [innodb\_同步\_旋转\_循环](innodb-parameters.html#sysvar_innodb_sync_spin_loops) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [Innodb\_系统\_行\_已删除](server-status-variables.html#statvar_Innodb_system_rows_deleted) |  |  |  | 是的 | 全球的 | 不 |
| [Innodb\_系统\_行\_插入](server-status-variables.html#statvar_Innodb_system_rows_inserted) |  |  |  | 是的 | 全球的 | 不 |
| [Innodb\_系统\_行\_读](server-status-variables.html#statvar_Innodb_system_rows_read) |  |  |  | 是的 | 全球的 | 不 |
| [innodb\_桌子\_锁](innodb-parameters.html#sysvar_innodb_table_locks) | 是的 | 是的 | 是的 |  | 两个都 | 是的 |
| [innodb\_温度\_数据\_文件\_小路](innodb-parameters.html#sysvar_innodb_temp_data_file_path) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [innodb\_温度\_表空间\_目录](innodb-parameters.html#sysvar_innodb_temp_tablespaces_dir) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [innodb\_线\_并发](innodb-parameters.html#sysvar_innodb_thread_concurrency) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_线\_睡觉\_延迟](innodb-parameters.html#sysvar_innodb_thread_sleep_delay) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_临时目录](innodb-parameters.html#sysvar_innodb_tmpdir) | 是的 | 是的 | 是的 |  | 两个都 | 是的 |
| [Innodb\_截断\_状态\_写](server-status-variables.html#statvar_Innodb_truncated_status_writes) |  |  |  | 是的 | 全球的 | 不 |
| [innodb_trx\_清除\_看法\_更新\_只要\_调试](innodb-parameters.html#sysvar_innodb_trx_purge_view_update_only_debug) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb_trx_rseg_n\_插槽\_调试](innodb-parameters.html#sysvar_innodb_trx_rseg_n_slots_debug) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_撤消\_目录](innodb-parameters.html#sysvar_innodb_undo_directory) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [innodb\_撤消\_日志\_加密](innodb-parameters.html#sysvar_innodb_undo_log_encrypt) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_撤消\_日志\_截短](innodb-parameters.html#sysvar_innodb_undo_log_truncate) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_撤消\_表空间](innodb-parameters.html#sysvar_innodb_undo_tablespaces) | 是的 | 是的 | 是的 |  | 全球的 | 变化 |
| [Innodb\_撤消\_表空间\_积极的](server-status-variables.html#statvar_Innodb_undo_tablespaces_active) |  |  |  | 是的 | 全球的 | 不 |
| [Innodb\_撤消\_表空间\_明确的](server-status-variables.html#statvar_Innodb_undo_tablespaces_explicit) |  |  |  | 是的 | 全球的 | 不 |
| [Innodb\_撤消\_表空间\_隐含的](server-status-variables.html#statvar_Innodb_undo_tablespaces_implicit) |  |  |  | 是的 | 全球的 | 不 |
| [Innodb\_撤消\_表空间\_全部的](server-status-variables.html#statvar_Innodb_undo_tablespaces_total) |  |  |  | 是的 | 全球的 | 不 |
| [innodb\_采用\_数据同步](innodb-parameters.html#sysvar_innodb_use_fdatasync) | 是的 | 是的 | 是的 |  | 全球的 | 是的 |
| [innodb\_采用\_本国的\_aio](innodb-parameters.html#sysvar_innodb_use_native_aio) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [innodb\_证实\_表空间\_路径](innodb-parameters.html#sysvar_innodb_validate_tablespace_paths) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [innodb\_版本](innodb-parameters.html#sysvar_innodb_version) |  |  | 是的 |  | 全球的 | 不 |
| [innodb\_写\_io\_线程](innodb-parameters.html#sysvar_innodb_write_io_threads) | 是的 | 是的 | 是的 |  | 全球的 | 不 |
| [独特\_支票](server-system-variables.html#sysvar_unique_checks) |  |  | 是的 |  | 两个都 | 是的 |

### InnoDB 命令选项

-   [](<>) [`--innodb[=*`价值`*]`](innodb-parameters.html#option_mysqld_innodb)

    [](<>)[](<>)

    | 命令行格式 | `--innodb[=值]` |
    | ----- | -------------- |
    | 已弃用 | 是的 |
    | 类型 | 枚举 |
    | 默认值 | `在` |
    | 有效值 | `离开`<br/><br/>`在`<br/><br/>`力量` |

    控制加载`InnoDB`存储引擎，如果服务器是用`InnoDB`支持。此选项具有三态格式，可能值为`离开`,`在`， 要么`力量`.看[第 5.6.1 节，“安装和卸载插件”](plugin-loading.html).

    禁用`InnoDB`， 采用[`--innodb=OFF`](innodb-parameters.html#option_mysqld_innodb)要么[`--skip-innodb`](innodb-parameters.html#option_mysqld_innodb).在这种情况下，因为默认存储引擎是[`InnoDB`](innodb-storage-engine.html), 服务器不会启动，除非你也使用[`--默认存储引擎`](server-system-variables.html#sysvar_default_storage_engine)和[`--default-tmp-存储引擎`](server-system-variables.html#sysvar_default_tmp_storage_engine)将默认设置为永久和其他引擎`暂时的`表。

    这`InnoDB`存储引擎不能再被禁用，并且[`--innodb=OFF`](innodb-parameters.html#option_mysqld_innodb)和[`--skip-innodb`](innodb-parameters.html#option_mysqld_innodb)选项已弃用且无效。它们的使用会导致警告。期望在未来的 MySQL 版本中删除这些选项。

-   [](<>) [`--innodb-状态文件`](innodb-parameters.html#option_mysqld_innodb-status-file)

    [](<>)[](<>)

    | 命令行格式 | `--innodb-status-file[={OFF|ON}]` |
    | ----- | --------------------------------- |
    | 类型 | 布尔值 |
    | 默认值 | `离开` |

    这`--innodb-状态文件`启动选项控制是否`InnoDB`创建一个名为`innodb_status.*`pid`*`在数据目录中并写入[`显示引擎 INNODB 状态`](show-engine.html)大约每 15 秒输出一次。

    这`innodb_status.*`pid`*`默认情况下不创建文件。要创建它，请开始[**mysqld**](mysqld.html)与`--innodb-状态文件`选项。`InnoDB`当服务器正常关闭时删除文件。如果出现异常关机，可能需要手动删除状态文件。

    这`--innodb-状态文件`选项用于临时使用，如[`显示引擎 INNODB 状态`](show-engine.html)输出生成会影响性能，并且`innodb_status.*`pid`*`随着时间的推移，文件可能会变得非常大。

    有关相关信息，请参阅[第 15.17.2 节，“启用 InnoDB 监视器”](innodb-enabling-monitors.html).

-   [`--skip-innodb`](innodb-parameters.html#option_mysqld_innodb)

    [](<>)[](<>)

    禁用`InnoDB`存储引擎。见描述[`--innodb`](innodb-parameters.html#option_mysqld_innodb).

### InnoDB 系统变量

-   [](<>) [`daemon_memcached_enable_binlog`](innodb-parameters.html#sysvar_daemon_memcached_enable_binlog)

    [](<>)[](<>)

    | 命令行格式 | `--daemon-memcached-enable-binlog[={OFF|ON}]` |
    | ----- | --------------------------------------------- |
    | 系统变量 | `[daemon_memcached_enable_binlog](innodb-parameters.html#sysvar_daemon_memcached_enable_binlog)` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `离开` |

    在源服务器上启用此选项以使用`InnoDB` **内存缓存**插入 （`daemon_memcached`) 与 MySQL[二进制日志](glossary.html#glos_binary_log).此选项只能在服务器启动时设置。您还必须使用以下命令在源服务器上启用 MySQL 二进制日志[`--log-bin`](replication-options-binary-log.html#sysvar_log_bin)选项。

    有关详细信息，请参阅[第 15.20.7 节，“InnoDB memcached 插件和复制”](innodb-memcached-replication.html).

-   [](<>) [`daemon_memcached_engine_lib_name`](innodb-parameters.html#sysvar_daemon_memcached_engine_lib_name)

    [](<>)[](<>)

    | 命令行格式 | `--daemon-memcached-engine-lib-name=file_name` |
    | ----- | ---------------------------------------------- |
    | 系统变量 | `[daemon_memcached_engine_lib_name](innodb-parameters.html#sysvar_daemon_memcached_engine_lib_name)` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 文件名 |
    | 默认值 | `innodb_engine.so` |

    指定实现`InnoDB` **内存缓存**插入。

    有关详细信息，请参阅[第 15.20.3 节，“设置 InnoDB memcached 插件”](innodb-memcached-setup.html).

-   [](<>) [`daemon_memcached_engine_lib_path`](innodb-parameters.html#sysvar_daemon_memcached_engine_lib_path)

    [](<>)[](<>)

    | 命令行格式 | `--daemon-memcached-engine-lib-path=dir_name` |
    | ----- | --------------------------------------------- |
    | 系统变量 | `[daemon_memcached_engine_lib_path](innodb-parameters.html#sysvar_daemon_memcached_engine_lib_path)` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 目录名称 |
    | 默认值 | `空值` |

    包含实现`InnoDB` **内存缓存**插入。默认值为 NULL，代表 MySQL 插件目录。除非指定一个`内存缓存`位于 MySQL 插件目录之外的不同存储引擎的插件。

    有关详细信息，请参阅[第 15.20.3 节，“设置 InnoDB memcached 插件”](innodb-memcached-setup.html).

-   [](<>) [`daemon_memcached_option`](innodb-parameters.html#sysvar_daemon_memcached_option)

    [](<>)[](<>)

    | 命令行格式 | `--daemon-memcached-option=选项` |
    | ----- | ------------------------------ |
    | 系统变量 | `[daemon_memcached_option](innodb-parameters.html#sysvar_daemon_memcached_option)` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 细绳 |
    | 默认值 | `` |

    用于将空格分隔的 memcached 选项传递给底层**内存缓存**启动时的内存对象缓存守护进程。例如，您可以更改端口**内存缓存**监听，减少最大同时连接数，更改键值对的最大内存大小，或启用错误日志的调试消息。

    看[第 15.20.3 节，“设置 InnoDB memcached 插件”](innodb-memcached-setup.html)了解使用详情。有关信息**内存缓存**选项，请参阅**内存缓存**手册页。

-   [](<>) [`daemon_memcached_r_batch_size`](innodb-parameters.html#sysvar_daemon_memcached_r_batch_size)

    [](<>)[](<>)

    | 命令行格式 | `--daemon-memcached-r-batch-size=#` |
    | ----- | ----------------------------------- |
    | 系统变量 | `[daemon_memcached_r_batch_size](innodb-parameters.html#sysvar_daemon_memcached_r_batch_size)` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `1` |

    指定有多少**内存缓存**读操作（`得到`操作）在执行之前执行[`犯罪`](commit.html)开始新的交易。对方[`daemon_memcached_w_batch_size`](innodb-parameters.html#sysvar_daemon_memcached_w_batch_size).

    该值默认设置为 1，以便通过 SQL 语句对表所做的任何更改都立即可见**内存缓存**操作。您可能会增加它以减少系统上频繁提交的开销，其中基础表仅通过**内存缓存**界面。如果您将值设置得太大，撤消或重做数据的数量可能会产生一些存储开销，就像任何长时间运行的事务一样。

    有关详细信息，请参阅[第 15.20.3 节，“设置 InnoDB memcached 插件”](innodb-memcached-setup.html).

-   [](<>) [`daemon_memcached_w_batch_size`](innodb-parameters.html#sysvar_daemon_memcached_w_batch_size)

    [](<>)[](<>)

    | 命令行格式 | `--daemon-memcached-w-batch-size=#` |
    | ----- | ----------------------------------- |
    | 系统变量 | `[daemon_memcached_w_batch_size](innodb-parameters.html#sysvar_daemon_memcached_w_batch_size)` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `1` |

    指定有多少**内存缓存**写操作，例如`添加`,`放`， 和`增量`, 在做之前执行[`犯罪`](commit.html)开始新的交易。对方[`daemon_memcached_r_batch_size`](innodb-parameters.html#sysvar_daemon_memcached_r_batch_size).

    默认情况下，此值设置为 1，假设存储的数据对于在中断时保存很重要并且应立即提交。存储非关键数据时，您可能会增加此值以减少频繁提交的开销；但最后一个*`ñ`*-1 如果发生意外退出，可能会丢失未提交的写入操作。

    有关详细信息，请参阅[第 15.20.3 节，“设置 InnoDB memcached 插件”](innodb-memcached-setup.html).

-   [](<>) [`innodb_adaptive_flushing`](innodb-parameters.html#sysvar_innodb_adaptive_flushing)

    [](<>)[](<>)

    | 命令行格式 | `--innodb-adaptive-flushing[={OFF|ON}]` |
    | ----- | --------------------------------------- |
    | 系统变量 | `[innodb_adaptive_flushing](innodb-parameters.html#sysvar_innodb_adaptive_flushing)` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `在` |

    [](<>)

    指定是否动态调整刷新率[脏页](glossary.html#glos_dirty_page)在里面`InnoDB` [缓冲池](glossary.html#glos_buffer_pool)根据工作量。动态调整刷新率旨在避免 I/O 活动的爆发。默认情况下启用此设置。看[第 15.8.3.5 节，“配置缓冲池刷新”](innodb-buffer-pool-flushing.html)了解更多信息。有关一般 I/O 调整建议，请参阅[第 8.5.8 节，“优化 InnoDB 磁盘 I/O”](optimizing-innodb-diskio.html).

-   [](<>) [`innodb_adaptive_flushing_lwm`](innodb-parameters.html#sysvar_innodb_adaptive_flushing_lwm)

    [](<>)[](<>)

    | 命令行格式 | `--innodb-adaptive-flushing-lwm=#` |
    | ----- | ---------------------------------- |
    | 系统变量 | `[innodb_adaptive_flushing_lwm](innodb-parameters.html#sysvar_innodb_adaptive_flushing_lwm)` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `10` |
    | 最小值 | `0` |
    | 最大值 | `70` |

    定义代表百分比的低水位线[重做日志](glossary.html#glos_redo_log)容量[自适应冲洗](glossary.html#glos_adaptive_flushing)已启用。有关详细信息，请参阅[第 15.8.3.5 节，“配置缓冲池刷新”](innodb-buffer-pool-flushing.html).

-   [](<>) [`innodb_adaptive_hash_index`](innodb-parameters.html#sysvar_innodb_adaptive_hash_index)

    [](<>)[](<>)

    | 命令行格式 | `--innodb-adaptive-hash-index[={OFF|ON}]` |
    | ----- | ----------------------------------------- |
    | 系统变量 | `[innodb_adaptive_hash_index](innodb-parameters.html#sysvar_innodb_adaptive_hash_index)` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `在` |

    是否`InnoDB` [自适应哈希索引](glossary.html#glos_adaptive_hash_index)启用或禁用。根据您的工作负载，可能需要动态启用或禁用[自适应哈希索引](glossary.html#glos_adaptive_hash_index)以提高查询性能。由于自适应哈希索引可能并非对所有工作负载都有用，因此请使用实际工作负载在启用和禁用它的情况下进行基准测试。看[第 15.5.3 节，“自适应哈希索引”](innodb-adaptive-hash.html)详情。

    默认情况下启用此变量。您可以使用`设置全球`声明，无需重新启动服务器。在运行时更改设置需要足够的权限来设置全局系统变量。看[第 5.1.9.1 节，“系统变量权限”](system-variable-privileges.html).你也可以使用`--skip-innodb-adaptive-hash-index`在服务器启动时禁用它。

    禁用自适应哈希索引会立即清空哈希表。当哈希表被清空时，正常操作可以继续，并且执行使用哈希表的查询直接访问索引 B 树。当自适应哈希索引重新启用时，哈希表会在正常操作期间再次填充。

-   [](<>) [`innodb_adaptive_hash_index_parts`](innodb-parameters.html#sysvar_innodb_adaptive_hash_index_parts)

    [](<>)[](<>)

    | 命令行格式 | `--innodb-adaptive-hash-index-parts=#` |
    | ----- | -------------------------------------- |
    | 系统变量 | `[innodb_adaptive_hash_index_parts]（innodb-parameters.html#sysvar_innodb_adaptive_hash_index_parts）` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 数字 |
    | 默认值 | `8` |
    | 最小值 | `1` |
    | 最大值 | `512` |

    对自适应哈希索引搜索系统进行分区。每个索引都绑定到一个特定的分区，每个分区由一个单独的锁存器保护。

    自适应哈希索引搜索系统默认分为 8 个部分。最大设置为 512。

    有关相关信息，请参阅[第 15.5.3 节，“自适应哈希索引”](innodb-adaptive-hash.html).

-   [](<>) [`innodb_adaptive_max_sleep_delay`](innodb-parameters.html#sysvar_innodb_adaptive_max_sleep_delay)

    [](<>)[](<>)

    | 命令行格式 | `--innodb-adaptive-max-sleep-delay=#` |
    | ----- | ------------------------------------- |
    | 系统变量 | `[innodb_adaptive_max_sleep_delay]（innodb-parameters.html#sysvar_innodb_adaptive_max_sleep_delay）` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `150000` |
    | 最小值 | `0` |
    | 最大值 | `1000000` |

    许可证`InnoDB`自动调整值[`innodb_thread_sleep_delay`](innodb-parameters.html#sysvar_innodb_thread_sleep_delay)根据当前工作量向上或向下。任何非零值都可以自动、动态调整[`innodb_thread_sleep_delay`](innodb-parameters.html#sysvar_innodb_thread_sleep_delay)值，直到在指定的最大值[`innodb_adaptive_max_sleep_delay`](innodb-parameters.html#sysvar_innodb_adaptive_max_sleep_delay)选项。该值表示微秒数。此选项在繁忙的系统中很有用，超过 16`InnoDB`线程。（实际上，它对于具有成百上千个同时连接的 MySQL 系统最有价值。）

    有关详细信息，请参阅[第 15.8.4 节，“为 InnoDB 配置线程并发”](innodb-performance-thread_concurrency.html).

-   [](<>) [`innodb_api_bk_commit_interval`](innodb-parameters.html#sysvar_innodb_api_bk_commit_interval)

    [](<>)[](<>)

    | 命令行格式 | `--innodb-api-bk-commit-interval=#` |
    | ----- | ----------------------------------- |
    | 系统变量 | `[innodb_api_bk_commit_interval](innodb-parameters.html#sysvar_innodb_api_bk_commit_interval)` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `5` |
    | 最小值 | `1` |
    | 最大值 | `1073741824` |

    多久自动提交一次使用`InnoDB` **内存缓存**界面，以秒为单位。有关详细信息，请参阅[第 15.20.6.4 节，“控制 InnoDB memcached 插件的事务行为”](innodb-memcached-txn.html).

-   [](<>) [`innodb_api_disable_rowlock`](innodb-parameters.html#sysvar_innodb_api_disable_rowlock)

    [](<>)[](<>)

    | 命令行格式 | `--innodb-api-disable-rowlock[={OFF|ON}]` |
    | ----- | ----------------------------------------- |
    | 系统变量 | `[innodb_api_disable_rowlock](innodb-parameters.html#sysvar_innodb_api_disable_rowlock)` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `离开` |

    使用此选项可在以下情况下禁用行锁`InnoDB` **内存缓存**执行 DML 操作。默认，[`innodb_api_disable_rowlock`](innodb-parameters.html#sysvar_innodb_api_disable_rowlock)被禁用，这意味着**内存缓存**请求行锁`得到`和`放`操作。什么时候[`innodb_api_disable_rowlock`](innodb-parameters.html#sysvar_innodb_api_disable_rowlock)已启用，**内存缓存**请求表锁而不是行锁。

    [`innodb_api_disable_rowlock`](innodb-parameters.html#sysvar_innodb_api_disable_rowlock)不是动态的。它必须在[**mysqld**](mysqld.html)命令行或在 MySQL 配置文件中输入。配置在安装插件时生效，在 MySQL 服务器启动时发生。

    有关详细信息，请参阅[第 15.20.6.4 节，“控制 InnoDB memcached 插件的事务行为”](innodb-memcached-txn.html).

-   [](<>) [`innodb_api_enable_binlog`](innodb-parameters.html#sysvar_innodb_api_enable_binlog)

    [](<>)[](<>)

    | 命令行格式 | `--innodb-api-enable-binlog[={OFF|ON}]` |
    | ----- | --------------------------------------- |
    | 系统变量 | `[innodb_api_enable_binlog](innodb-parameters.html#sysvar_innodb_api_enable_binlog)` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `离开` |

    让您使用`InnoDB` **内存缓存**MySQL的插件[二进制日志](glossary.html#glos_binary_log).有关详细信息，请参阅[启用 InnoDB memcached 二进制日志](innodb-memcached-replication.html#innodb-memcached-replication-enable-binlog).

-   [](<>) [`innodb_api_enable_mdl`](innodb-parameters.html#sysvar_innodb_api_enable_mdl)

    [](<>)[](<>)

    | 命令行格式 | `--innodb-api-enable-mdl[={OFF|ON}]` |
    | ----- | ------------------------------------ |
    | 系统变量 | `[innodb_api_enable_mdl](innodb-parameters.html#sysvar_innodb_api_enable_mdl)` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `离开` |

    锁定所使用的表`InnoDB` **内存缓存**插件，因此它不能被删除或更改[DDL](glossary.html#glos_ddl)通过 SQL 接口。有关详细信息，请参阅[第 15.20.6.4 节，“控制 InnoDB memcached 插件的事务行为”](innodb-memcached-txn.html).

-   [](<>) [`innodb_api_trx_level`](innodb-parameters.html#sysvar_innodb_api_trx_level)

    [](<>)[](<>)

    | 命令行格式 | `--innodb-api-trx-level=#` |
    | ----- | -------------------------- |
    | 系统变量 | `[innodb_api_trx_level](innodb-parameters.html#sysvar_innodb_api_trx_level)` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `0` |

    控制交易[隔离级别](glossary.html#glos_isolation_level)处理的查询**内存缓存**界面。熟悉的名字对应的常量有：

    -   0 =[`阅读未提交`](innodb-transaction-isolation-levels.html#isolevel_read-uncommitted)

    -   1 =[`阅读已提交`](innodb-transaction-isolation-levels.html#isolevel_read-committed)

    -   2 =[`可重复阅读`](innodb-transaction-isolation-levels.html#isolevel_repeatable-read)

    -   3 =[`可序列化`](innodb-transaction-isolation-levels.html#isolevel_serializable)

        有关详细信息，请参阅[第15.20.6.4节，“控制InnoDB memcached插件的事务行为”](innodb-memcached-txn.html).

-   [](<>) [`innodb_自动扩展_增量`](innodb-parameters.html#sysvar_innodb_autoextend_increment)

    [](<>)[](<>)

    | 命令行格式 | `--innodb自动扩展增量=#` |
    | ----- | ------------------ |
    | 系统变量 | `[innodb_autoextend_increment]（innodb parameters.html#sysvar_innodb_autoextend_increment）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `64` |
    | 最小值 | `1.` |
    | 最大值 | `1000` |

    用于扩展自动扩展的大小的增量大小（以兆字节为单位）`InnoDB` [系统表空间](glossary.html#glos_system_tablespace)文件已满时归档。默认值为64。有关相关信息，请参阅[系统表空间数据文件配置](innodb-init-startup-configuration.html#innodb-startup-data-file-configuration)和[调整系统表空间的大小](innodb-system-tablespace.html#innodb-resize-system-tablespace).

    这个[`innodb_自动扩展_增量`](innodb-parameters.html#sysvar_innodb_autoextend_increment)设置不影响[每个表的文件数](glossary.html#glos_file_per_table)表空间文件或[通用表空间](glossary.html#glos_general_tablespace)文件夹。这些文件是自动扩展的，无论[`innodb_自动扩展_增量`](innodb-parameters.html#sysvar_innodb_autoextend_increment)背景最初的扩展量很小，之后以4MB的增量进行扩展。

-   [](<>) [`innodb_autoinc_锁定模式`](innodb-parameters.html#sysvar_innodb_autoinc_lock_mode)

    [](<>)[](<>)

    | 命令行格式 | `--innodb autoinc锁定模式=#` |
    | ----- | ------------------------ |
    | 系统变量 | `[innodb_autoinc_lock_mode]（innodb parameters.html#sysvar_innodb_autoinc_lock_mode）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `2.` |
    | 有效值 | `0`<br/><br/>`1.`<br/><br/>`2.` |

    这个[锁定模式](glossary.html#glos_lock_mode)用于生成[自动增量](glossary.html#glos_auto_increment)价值观对于传统、连续或交错，允许值分别为0、1或2。

    从MySQL 8.0开始，默认设置为2（交错），在此之前为1（连续）。默认设置为交错锁定模式的更改反映了默认复制类型从基于语句的复制更改为基于行的复制，这发生在MySQL 5.7中。基于语句的复制需要连续自动增量锁定模式，以确保以可预测且可重复的顺序为给定的SQL语句序列分配自动增量值，而基于行的复制对SQL语句的执行顺序不敏感。

    有关每个锁定模式的特征，请参阅[InnoDB AUTO\_增量锁定模式](innodb-auto-increment-handling.html#innodb-auto-increment-lock-modes).

-   [](<>) [`innodb_背景_下拉列表_空`](innodb-parameters.html#sysvar_innodb_background_drop_list_empty)

    [](<>)[](<>)

    | 命令行格式 | `--innodb后台下拉列表为空[={OFF | ON}]` |
    | ----- | ------------------------------- |
    | 系统变量 | `[innodb_background_drop_list_empty]（innodb parameters.html#sysvar_innodb_background_drop_list_empty）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    启用[`innodb_背景_下拉列表_空`](innodb-parameters.html#sysvar_innodb_background_drop_list_empty)调试选项通过延迟表的创建，直到后台下拉列表为空，从而帮助避免测试用例失败。例如，如果测试用例A放置表格`t1`在后台下拉列表上，测试用例B在创建表之前等待后台下拉列表为空`t1`.

-   [](<>) [`innodb_缓冲区_池_区块_大小`](innodb-parameters.html#sysvar_innodb_buffer_pool_chunk_size)

    [](<>)[](<>)

    | 命令行格式 | `--innodb缓冲池块大小=#` |
    | ----- | ------------------ |
    | 系统变量 | `[innodb_buffer_pool_chunk_size]（innodb parameters.html#sysvar_innodb_buffer_pool_chunk_size）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `134217728` |
    | 最小值 | `1048576` |
    | 最大值 | `innodb_buffer_pool_size/innodb_buffer_pool_实例` |

    [`innodb_缓冲区_池_区块_大小`](innodb-parameters.html#sysvar_innodb_buffer_pool_chunk_size)定义的块大小`InnoDB`缓冲池大小调整操作。

    为了避免在调整大小操作期间复制所有缓冲池页面，该操作在“块”中执行。默认情况下，[`innodb_缓冲区_池_区块_大小`](innodb-parameters.html#sysvar_innodb_buffer_pool_chunk_size)是128MB（134217728字节）。区块中包含的页数取决于[`innodb_页面大小`](innodb-parameters.html#sysvar_innodb_page_size). [`innodb_缓冲区_池_区块_大小`](innodb-parameters.html#sysvar_innodb_buffer_pool_chunk_size)可以以1MB（1048576字节）为单位增加或减少。

    在更改系统时，以下条件适用[`innodb_缓冲区_池_区块_大小`](innodb-parameters.html#sysvar_innodb_buffer_pool_chunk_size)价值：

    -   如果[`innodb_缓冲区_池_区块_大小`](innodb-parameters.html#sysvar_innodb_buffer_pool_chunk_size) \* [`innodb_缓冲区_池_实例`](innodb-parameters.html#sysvar_innodb_buffer_pool_instances)大于缓冲池初始化时的当前缓冲池大小，[`innodb_缓冲区_池_区块_大小`](innodb-parameters.html#sysvar_innodb_buffer_pool_chunk_size)被截断为[`innodb_缓冲区_池_大小`](innodb-parameters.html#sysvar_innodb_buffer_pool_size) / [`innodb_缓冲区_池_实例`](innodb-parameters.html#sysvar_innodb_buffer_pool_instances).

    -   缓冲池大小必须始终等于或等于[`innodb_缓冲区_池_区块_大小`](innodb-parameters.html#sysvar_innodb_buffer_pool_chunk_size) \* [`innodb_缓冲区_池_实例`](innodb-parameters.html#sysvar_innodb_buffer_pool_instances).如果你改变[`innodb_缓冲区_池_区块_大小`](innodb-parameters.html#sysvar_innodb_buffer_pool_chunk_size), [`innodb_缓冲区_池_大小`](innodb-parameters.html#sysvar_innodb_buffer_pool_size)自动四舍五入到等于或等于[`innodb_缓冲区_池_区块_大小`](innodb-parameters.html#sysvar_innodb_buffer_pool_chunk_size) \* [`innodb_缓冲区_池_实例`](innodb-parameters.html#sysvar_innodb_buffer_pool_instances)。在初始化缓冲池时进行调整。

    重要的

    换衣服时要小心[`innodb_缓冲区_池_区块_大小`](innodb-parameters.html#sysvar_innodb_buffer_pool_chunk_size)，因为更改此值会自动增加缓冲池的大小。换衣服之前[`innodb_缓冲区_池_区块_大小`](innodb-parameters.html#sysvar_innodb_buffer_pool_chunk_size)，计算其对[`innodb_缓冲区_池_大小`](innodb-parameters.html#sysvar_innodb_buffer_pool_size)以确保生成的缓冲池大小是可接受的。

    为了避免潜在的性能问题，块的数量([`innodb_缓冲区_池_大小`](innodb-parameters.html#sysvar_innodb_buffer_pool_size) / [`innodb_缓冲区_池_区块_大小`](innodb-parameters.html#sysvar_innodb_buffer_pool_chunk_size))不应超过1000。

    这个[`innodb_缓冲区_池_大小`](innodb-parameters.html#sysvar_innodb_buffer_pool_size)变量是动态的，这允许在服务器联机时调整缓冲池的大小。但是，缓冲池大小必须等于或等于[`innodb_缓冲区_池_区块_大小`](innodb-parameters.html#sysvar_innodb_buffer_pool_chunk_size) \* [`innodb_缓冲区_池_实例`](innodb-parameters.html#sysvar_innodb_buffer_pool_instances)，更改这些变量设置之一需要重新启动服务器。

    看见[第15.8.3.1节，“配置InnoDB缓冲池大小”](innodb-buffer-pool-resize.html)了解更多信息。

-   [](<>) [`innodb_buffer_pool_debug`](innodb-parameters.html#sysvar_innodb_buffer_pool_debug)

    [](<>)[](<>)

    | 命令行格式 | `--innodb缓冲池调试[={OFF | ON}]` |
    | ----- | ---------------------------- |
    | 系统变量 | `[innodb_buffer_pool_debug]（innodb parameters.html#sysvar_innodb_buffer_pool_debug）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    当缓冲池大小小于1GB时，启用此选项允许多个缓冲池实例，忽略对其施加的1GB最小缓冲池大小限制[`innodb_缓冲区_池_实例`](innodb-parameters.html#sysvar_innodb_buffer_pool_instances)这个[`innodb_buffer_pool_debug`](innodb-parameters.html#sysvar_innodb_buffer_pool_debug)选项仅在使用中编译调试支持时可用[`用_调试`](source-configuration-options.html#option_cmake_with_debug) **CMake**选项

-   [](<>) [`innodb_缓冲区_池_转储_关闭时`](innodb-parameters.html#sysvar_innodb_buffer_pool_dump_at_shutdown)

    [](<>)[](<>)

    | 命令行格式 | `--innodb缓冲池在关闭时转储[={OFF | ON}]` |
    | ----- | -------------------------------- |
    | 系统变量 | `[innodb_buffer_pool_dump_at_shutdown]（innodb parameters.html#sysvar_innodb_buffer_pool_dump_at_shutdown）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `在…上` |

    指定是否记录缓存在中的页面`InnoDB` [缓冲池](glossary.html#glos_buffer_pool)当MySQL服务器关闭时，缩短[热身](glossary.html#glos_warm_up)在下次重新启动时处理。通常与…结合使用[`innodb_缓冲区_池_启动时加载_`](innodb-parameters.html#sysvar_innodb_buffer_pool_load_at_startup)这个[`innodb_buffer_pool_dump_pct`](innodb-parameters.html#sysvar_innodb_buffer_pool_dump_pct)选项定义要转储的最近使用的缓冲池页的百分比。

    二者都[`innodb_缓冲区_池_转储_关闭时`](innodb-parameters.html#sysvar_innodb_buffer_pool_dump_at_shutdown)和[`innodb_缓冲区_池_启动时加载_`](innodb-parameters.html#sysvar_innodb_buffer_pool_load_at_startup)默认情况下启用。

    有关更多信息，请参阅[第15.8.3.6节，“保存和恢复缓冲池状态”](innodb-preload-buffer-pool.html).

-   [](<>) [`innodb_buffer_pool_dump_now`](innodb-parameters.html#sysvar_innodb_buffer_pool_dump_now)

    [](<>)[](<>)

    | 命令行格式 | `--innodb缓冲池转储现在[={OFF | ON}]` |
    | ----- | ------------------------------ |
    | 系统变量 | `[innodb_buffer_pool_dump_now]（innodb parameters.html#sysvar_innodb_buffer_pool_dump_now）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    立即记录缓存在`InnoDB` [缓冲池](glossary.html#glos_buffer_pool).通常与[`innodb_buffer_pool_load_now_`](innodb-parameters.html#sysvar_innodb_buffer_pool_load_now).

    有关更多信息，请参阅[第15.8.3.6节，“保存和恢复缓冲池状态”](innodb-preload-buffer-pool.html).

-   [](<>) [`innodb_buffer_pool_dump_pct`](innodb-parameters.html#sysvar_innodb_buffer_pool_dump_pct)

    [](<>)[](<>)

    | 命令行格式 | `--innodb缓冲池转储pct=#` |
    | ----- | -------------------- |
    | 系统变量 | `[innodb_buffer_pool_dump_pct]（innodb parameters.html#sysvar_innodb_buffer_pool_dump_pct）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `25` |
    | 最小值 | `1.` |
    | 最大值 | `100` |

    指定每个缓冲池要读取和转储的最近使用的页的百分比。范围是1到100。默认值为25。例如，如果有4个缓冲池，每个缓冲池有100页，并且[`innodb_buffer_pool_dump_pct`](innodb-parameters.html#sysvar_innodb_buffer_pool_dump_pct)设置为25时，将转储每个缓冲池中最近使用的25个页面。

-   [](<>) [`innodb_缓冲区_池_文件名`](innodb-parameters.html#sysvar_innodb_buffer_pool_filename)

    [](<>)[](<>)

    | 命令行格式 | `--innodb缓冲池文件名=文件名` |
    | ----- | -------------------- |
    | 系统变量 | `[innodb_buffer_pool_filename]（innodb parameters.html#sysvar_innodb_buffer_pool_filename）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 文件名 |
    | 默认值 | `ib_缓冲池` |

    指定保存由生成的表空间ID和页面ID列表的文件名[`innodb_缓冲区_池_转储_关闭时`](innodb-parameters.html#sysvar_innodb_buffer_pool_dump_at_shutdown)或[`innodb_buffer_pool_dump_now`](innodb-parameters.html#sysvar_innodb_buffer_pool_dump_now).表空间ID和页面ID以以下格式保存：`空间，页码`。默认情况下，文件名为`ib_缓冲池`位于`InnoDB`数据目录。必须相对于数据目录指定非默认位置。

    可以在运行时使用[`设置`](set-variable.html)声明：

    ```
    SET GLOBAL innodb_buffer_pool_filename='file_name';
    ```

    您还可以在启动时在启动字符串或MySQL配置文件中指定文件名。在启动时指定文件名时，该文件必须存在或不存在`InnoDB`返回一个启动错误，指示没有这样的文件或目录。

    有关更多信息，请参阅[第15.8.3.6节，“保存和恢复缓冲池状态”](innodb-preload-buffer-pool.html).

-   [](<>) [`innodb_buffer_pool_在_core_文件中`](innodb-parameters.html#sysvar_innodb_buffer_pool_in_core_file)

    [](<>)[](<>)

    | 命令行格式 | `--核心文件中的innodb缓冲池[={OFF | ON}]` |
    | ----- | -------------------------------- |
    | 介绍 | 8.0.14 |
    | 系统变量 | `[innodb_buffer_pool_in_core_文件]（innodb parameters.html#sysvar_innodb_buffer_pool_in_core_文件）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `在…上` |

    禁用[`innodb_buffer_pool_在_core_文件中`](innodb-parameters.html#sysvar_innodb_buffer_pool_in_core_file)变量通过排除`InnoDB`缓冲池页面。要使用此变量[`核心文件`](server-system-variables.html#sysvar_core_file)必须启用变量，并且操作系统必须支持`MADV_DONTDUMP`非POSIX扩展到`madvise（）`，在Linux 3.4及更高版本中受支持。有关更多信息，请参阅[第15.8.3.7节，“从核心文件中排除缓冲池页面”](innodb-buffer-pool-in-core-file.html).

-   [](<>) [`innodb_缓冲区_池_实例`](innodb-parameters.html#sysvar_innodb_buffer_pool_instances)

    [](<>)[](<>)

    | 命令行格式 | `--innodb缓冲池实例=#` |
    | ----- | ----------------- |
    | 系统变量 | `[innodb_buffer_pool_instances]（innodb parameters.html#sysvar_innodb_buffer_pool_instances）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值（Windows，32位平台） | `（自动调整大小）` |
    | 默认值（其他） | `8（如果innodb_buffer_pool_size<1GB，则为1）` |
    | 最小值 | `1.` |
    | 最大值 | `64` |

    所属区域的数量`InnoDB` [缓冲池](glossary.html#glos_buffer_pool)分为三部分。对于缓冲池在数千GB范围内的系统，通过减少不同线程对缓存页的读写时的争用，将缓冲池划分为不同的实例可以提高并发性。使用哈希函数，将存储在缓冲池中或从缓冲池读取的每个页面随机分配给其中一个缓冲池实例。每个缓冲池管理自己的空闲列表，[刷新列表](glossary.html#glos_flush_list), [LRU](glossary.html#glos_lru)，以及连接到缓冲池的所有其他数据结构，并受其自己的缓冲池保护[互斥](glossary.html#glos_mutex).

    此选项仅在设置[`innodb_缓冲区_池_大小`](innodb-parameters.html#sysvar_innodb_buffer_pool_size)到1GB或更高。缓冲池的总大小被分配给所有缓冲池。为获得最佳效率，请指定以下各项的组合：[`innodb_缓冲区_池_实例`](innodb-parameters.html#sysvar_innodb_buffer_pool_instances)和[`innodb_缓冲区_池_大小`](innodb-parameters.html#sysvar_innodb_buffer_pool_size)因此，每个缓冲池实例至少为1GB。

    32位Windows系统上的默认值取决于[`innodb_缓冲区_池_大小`](innodb-parameters.html#sysvar_innodb_buffer_pool_size)，如下所述：

    -   如果[`innodb_缓冲区_池_大小`](innodb-parameters.html#sysvar_innodb_buffer_pool_size)大于默认值1.3GB[`innodb_缓冲区_池_实例`](innodb-parameters.html#sysvar_innodb_buffer_pool_instances)是[`innodb_缓冲区_池_大小`](innodb-parameters.html#sysvar_innodb_buffer_pool_size)/128MB，每个块有单独的内存分配请求。选择1.3GB作为边界，在该边界处，32位窗口可能无法分配单个缓冲池所需的连续地址空间。

    -   否则，默认值为1。

        在所有其他平台上，当[`innodb_缓冲区_池_大小`](innodb-parameters.html#sysvar_innodb_buffer_pool_size)大于或等于1GB。否则，默认值为1。

        有关相关信息，请参阅[第15.8.3.1节，“配置InnoDB缓冲池大小”](innodb-buffer-pool-resize.html).

-   [](<>) [`innodb_缓冲区_池_加载_中止`](innodb-parameters.html#sysvar_innodb_buffer_pool_load_abort)

    [](<>)[](<>)

    | 命令行格式 | `--innodb缓冲池加载中止[={OFF | ON}]` |
    | ----- | ------------------------------ |
    | 系统变量 | `[innodb_buffer_pool_load_abort]（innodb parameters.html#sysvar_innodb_buffer_pool_load_abort）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    中断恢复过程`InnoDB` [缓冲池](glossary.html#glos_buffer_pool)触发的内容[`innodb_缓冲区_池_启动时加载_`](innodb-parameters.html#sysvar_innodb_buffer_pool_load_at_startup)或[`innodb_buffer_pool_load_now_`](innodb-parameters.html#sysvar_innodb_buffer_pool_load_now).

    有关更多信息，请参阅[第15.8.3.6节，“保存和恢复缓冲池状态”](innodb-preload-buffer-pool.html).

-   [](<>) [`innodb_缓冲区_池_启动时加载_`](innodb-parameters.html#sysvar_innodb_buffer_pool_load_at_startup)

    [](<>)[](<>)

    | 命令行格式 | `--innodb缓冲池启动时加载[={OFF | ON}]` |
    | ----- | ------------------------------- |
    | 系统变量 | `[innodb_buffer_pool_load_at_startup]（innodb parameters.html#sysvar_innodb_buffer_pool_load_at_startup）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `在…上` |

    指定在MySQL服务器启动时`InnoDB` [缓冲池](glossary.html#glos_buffer_pool)是自动的[热身](glossary.html#glos_warm_up)通过加载之前保存的相同页面。通常与…结合使用[`innodb_缓冲区_池_转储_关闭时`](innodb-parameters.html#sysvar_innodb_buffer_pool_dump_at_shutdown).

    二者都[`innodb_缓冲区_池_转储_关闭时`](innodb-parameters.html#sysvar_innodb_buffer_pool_dump_at_shutdown)和[`innodb_缓冲区_池_启动时加载_`](innodb-parameters.html#sysvar_innodb_buffer_pool_load_at_startup)默认情况下启用。

    有关更多信息，请参阅[第15.8.3.6节，“保存和恢复缓冲池状态”](innodb-preload-buffer-pool.html).

-   [](<>) [`innodb_buffer_pool_load_now_`](innodb-parameters.html#sysvar_innodb_buffer_pool_load_now)

    [](<>)[](<>)

    | 命令行格式 | `--innodb缓冲池现在加载[={OFF | ON}]` |
    | ----- | ------------------------------ |
    | 系统变量 | `[innodb_buffer_pool_load_now]（innodb parameters.html#sysvar_innodb_buffer_pool_load_now）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    立即[热身](glossary.html#glos_warm_up)这个`InnoDB` [缓冲池](glossary.html#glos_buffer_pool)通过加载一组数据页，无需等待服务器重启。在基准测试期间，将缓存恢复到已知状态，或者在运行报告查询或维护后，让MySQL服务器恢复正常工作负载，都非常有用。

    有关更多信息，请参阅[第15.8.3.6节，“保存和恢复缓冲池状态”](innodb-preload-buffer-pool.html).

-   [](<>) [`innodb_缓冲区_池_大小`](innodb-parameters.html#sysvar_innodb_buffer_pool_size)

    [](<>)[](<>)

    | 命令行格式 | `--innodb缓冲池大小=#` |
    | ----- | ----------------- |
    | 系统变量 | `[innodb_buffer_pool_size]（innodb parameters.html#sysvar_innodb_buffer_pool_size）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `134217728` |
    | 最小值 | `5242880` |
    | 最大值（64位平台） | `2**64-1` |
    | 最大值（32位平台） | `2**32-1` |

    数据的大小（以字节为单位）[缓冲池](glossary.html#glos_buffer_pool)，存储区域`InnoDB`缓存表和索引数据。默认值为134217728字节（128MB）。最大值取决于CPU架构；最大值为4294967295（2<sup>32</sup>-1） 在32位系统和18446744073709551615（2）上<sup>64</sup>-1） 在64位系统上。在32位系统上，CPU体系结构和操作系统的实际最大大小可能低于规定的最大大小。当缓冲池的大小大于1GB时，设置[`innodb_缓冲区_池_实例`](innodb-parameters.html#sysvar_innodb_buffer_pool_instances)设置为大于1的值可以提高繁忙服务器上的可伸缩性。

    更大的缓冲池需要更少的磁盘I/O来多次访问相同的表数据。在专用数据库服务器上，可以将缓冲池大小设置为机器物理内存大小的80%。在配置缓冲池大小时，请注意以下潜在问题，并准备在必要时缩小缓冲池的大小。

    -   对物理内存的竞争可能会导致操作系统中的分页。

    -   `InnoDB`为缓冲区和控制结构保留额外内存，以便总分配空间比指定的缓冲池大小大约大10%。

    -   缓冲池的地址空间必须是连续的，这在具有在特定地址加载DLL的Windows系统上可能是一个问题。

    -   初始化缓冲池的时间大致与其大小成正比。在具有大型缓冲池的实例上，初始化时间可能很长。为了缩短初始化周期，可以在服务器关闭时保存缓冲池状态，并在服务器启动时恢复。看见[第15.8.3.6节，“保存和恢复缓冲池状态”](innodb-preload-buffer-pool.html).

        当增加或减少缓冲池大小时，该操作将分块执行。块大小由[`innodb_缓冲区_池_区块_大小`](innodb-parameters.html#sysvar_innodb_buffer_pool_chunk_size)变量，默认值为128 MB。

        缓冲池大小必须始终等于或等于[`innodb_缓冲区_池_区块_大小`](innodb-parameters.html#sysvar_innodb_buffer_pool_chunk_size) \* [`innodb_缓冲区_池_实例`](innodb-parameters.html#sysvar_innodb_buffer_pool_instances)。如果将缓冲池大小更改为不等于或不等于的倍数[`innodb_缓冲区_池_区块_大小`](innodb-parameters.html#sysvar_innodb_buffer_pool_chunk_size) \* [`innodb_缓冲区_池_实例`](innodb-parameters.html#sysvar_innodb_buffer_pool_instances)，缓冲池大小将自动调整为等于或的倍数[`innodb_缓冲区_池_区块_大小`](innodb-parameters.html#sysvar_innodb_buffer_pool_chunk_size) \* [`innodb_缓冲区_池_实例`](innodb-parameters.html#sysvar_innodb_buffer_pool_instances).

    [`innodb_缓冲区_池_大小`](innodb-parameters.html#sysvar_innodb_buffer_pool_size)可以动态设置，这允许您在不重新启动服务器的情况下调整缓冲池的大小。这个[`Innodb_缓冲区_池_调整大小_状态`](server-status-variables.html#statvar_Innodb_buffer_pool_resize_status)status变量报告联机缓冲池大小调整操作的状态。看见[第15.8.3.1节，“配置InnoDB缓冲池大小”](innodb-buffer-pool-resize.html)了解更多信息。

    如果[`innodb_专用_服务器`](innodb-parameters.html#sysvar_innodb_dedicated_server)如果已启用，则[`innodb_缓冲区_池_大小`](innodb-parameters.html#sysvar_innodb_buffer_pool_size)如果未明确定义，则会自动配置该值。有关更多信息，请参阅[第15.8.12节，“为专用MySQL服务器启用自动配置”](innodb-dedicated-server.html).

-   [](<>) [`innodb\u更改\u缓冲区\u最大\u大小`](innodb-parameters.html#sysvar_innodb_change_buffer_max_size)

    [](<>)[](<>)

    | 命令行格式 | `--innodb更改缓冲区最大大小=#` |
    | ----- | --------------------- |
    | 系统变量 | `[innodb_change_buffer_max_size]（innodb parameters.html#sysvar_innodb_change_buffer_max_size）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `25` |
    | 最小值 | `0` |
    | 最大值 | `50` |

    最大尺寸为`InnoDB` [更换缓冲区](glossary.html#glos_change_buffer)，占[缓冲池](glossary.html#glos_buffer_pool)。对于具有大量插入、更新和删除活动的MySQL服务器，可以增加此值，对于具有用于报告的不变数据的MySQL服务器，可以降低此值。有关更多信息，请参阅[第15.5.2节“更换缓冲区”](innodb-change-buffer.html)。有关一般I/O调整建议，请参阅[第8.5.8节，“优化InnoDB磁盘I/O”](optimizing-innodb-diskio.html).

-   [](<>) [`innodb_更改_缓冲`](innodb-parameters.html#sysvar_innodb_change_buffering)

    [](<>)[](<>)

    | 命令行格式 | `--innodb更改缓冲=值` |
    | ----- | ---------------- |
    | 系统变量 | `[innodb_change_buffering]（innodb parameters.html#sysvar_innodb_change_buffering）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 列举 |
    | 默认值 | `全部的` |
    | 有效值 | `没有一个`<br/><br/>`插入`<br/><br/>`删除`<br/><br/>`变化`<br/><br/>`清洗`<br/><br/>`全部的` |

    是否`InnoDB`表演[更改缓冲](glossary.html#glos_change_buffering)，这是一种将写入操作延迟到二级索引的优化，以便可以按顺序执行I/O操作。下表描述了允许值。数值也可以用数字表示。

    [](<>)

    **表15.25 innodb的允许值\_改变\_缓冲**

    | 价值 | 数值 | 描述 |
    | --- | --- | --- |
    | `没有一个` | `0` | 不要缓冲任何操作。 |
    | `插入` | `1.` | 缓冲区插入操作。 |
    | `删除` | `2.` | 缓冲区删除标记操作；严格来说，在清除操作中标记索引记录以供以后删除的写操作。 |
    | `变化` | `3.` | 缓冲区插入和删除标记操作。 |
    | `清洗` | `4.` | 缓冲在后台发生的物理删除操作。 |
    | `全部的` | `5.` | 默认值。缓冲区插入、删除标记操作和清除。 |

    有关更多信息，请参阅[第15.5.2节“更换缓冲区”](innodb-change-buffer.html)。有关一般I/O调整建议，请参阅[第8.5.8节，“优化InnoDB磁盘I/O”](optimizing-innodb-diskio.html).

-   [](<>) [`innodb_更改_缓冲_调试`](innodb-parameters.html#sysvar_innodb_change_buffering_debug)

    [](<>)[](<>)

    | 命令行格式 | `--innodb更改缓冲调试=#` |
    | ----- | ------------------ |
    | 系统变量 | `[innodb_change_buffering_debug]（innodb parameters.html#sysvar_innodb_change_buffering_debug）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `0` |
    | 最大值 | `2.` |

    为设置调试标志`InnoDB`改变缓冲。值为1将强制对更改缓冲区进行所有更改。值为2会导致在合并时意外退出。默认值0表示未设置更改缓冲调试标志。只有在使用中编译调试支持时，此选项才可用[`用_调试`](source-configuration-options.html#option_cmake_with_debug) **CMake**选项

-   [](<>) [`innodb_检查点_已禁用`](innodb-parameters.html#sysvar_innodb_checkpoint_disabled)

    [](<>)[](<>)

    | 命令行格式 | `--innodb检查点已禁用[={OFF | ON}]` |
    | ----- | ----------------------------- |
    | 系统变量 | `[innodb_checkpoint_disabled]（innodb parameters.html#sysvar_innodb_checkpoint_disabled）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    这是一个调试选项，仅供专家调试使用。它会禁用检查点，以便故意的服务器退出总是启动`InnoDB`恢复应该只在很短的时间间隔内启用它，通常是在运行DML操作之前，DML操作会写入重做日志条目，这些条目在服务器退出后需要恢复。只有在使用中编译调试支持时，此选项才可用[`用_调试`](source-configuration-options.html#option_cmake_with_debug) **CMake**选项

-   [](<>) [`innodb_校验和算法`](innodb-parameters.html#sysvar_innodb_checksum_algorithm)

    [](<>)[](<>)

    | 命令行格式 | `--innodb校验和算法=值` |
    | ----- | ----------------- |
    | 系统变量 | `[innodb_checksum_algorithm]（innodb parameters.html#sysvar_innodb_checksum_algorithm）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 列举 |
    | 默认值 | `crc32` |
    | 有效值 | `crc32`<br/><br/>`严格的crc32`<br/><br/>`innodb`<br/><br/>`严格的innodb`<br/><br/>`没有一个`<br/><br/>`没有` |

    指定如何生成和验证[校验和](glossary.html#glos_checksum)存储在`InnoDB` [表空间](glossary.html#glos_tablespace).的默认值[`innodb_校验和算法`](innodb-parameters.html#sysvar_innodb_checksum_algorithm)是`crc32`.

    版本[MySQL企业备份](mysql-enterprise-backup.html)多达3.8.0版本不支持备份使用CRC32校验和的表空间。[MySQL企业备份](mysql-enterprise-backup.html)在3.8.1中添加了CRC32校验和支持，但有一些限制。参考[MySQL企业备份](mysql-enterprise-backup.html)3.8.1有关更多信息，请更改历史记录。

    价值`innodb`与MySQL的早期版本向后兼容。价值`crc32`使用更快的算法计算每个修改块的校验和，并检查每个磁盘读取的校验和。它一次扫描64位数据块，比`innodb`校验和算法，一次扫描8位数据块。价值`没有一个`在校验和字段中写入常量值，而不是基于块数据计算值。表空间中的块可以混合使用旧值、新值和无校验和值，随着数据的修改而逐渐更新；一旦表空间中的块被修改为使用`crc32`算法，早期版本的MySQL无法读取关联的表。

    严格形式的校验和算法在表空间中遇到有效但不匹配的校验和值时会报告错误。建议您仅在新实例中使用严格的设置，以便首次设置表空间。严格设置的速度要快一些，因为在磁盘读取期间，它们不需要计算所有校验和值。

    下表显示了`没有一个`, `innodb`和`crc32`选项值，以及它们的严格对应项。`没有一个`, `innodb`和`crc32`将指定类型的校验和值写入每个数据块，但为了兼容性，在读取操作期间验证块时，请接受其他校验和值。严格设置也接受有效的校验和值，但在遇到有效的不匹配校验和值时打印错误消息。如果可以的话，使用严格的表单可以加快验证速度`InnoDB`实例中的数据文件是在相同的[`innodb_校验和算法`](innodb-parameters.html#sysvar_innodb_checksum_algorithm)价值

    [](<>)

    **表15.26允许的innodb\_校验和\_算法值**

    | 价值 | 生成的校验和（写入时） | 允许的校验和（读取时） |
    | --- | ----------- | ----------- |
    | 没有一个 | 常数。 | 由`没有一个`, `innodb`或`crc32`. |
    | innodb | 在软件中使用原始算法计算的校验和`InnoDB`. | 由`没有一个`, `innodb`或`crc32`. |
    | crc32 | 使用`crc32`算法，可能需要硬件辅助。 | 由`没有一个`, `innodb`或`crc32`. |
    | 严格的\_没有一个 | 常数 | 由`没有一个`, `innodb`或`crc32`. `InnoDB`如果遇到有效但不匹配的校验和，则打印错误消息。 |
    | 严格的\_innodb | 在软件中使用原始算法计算的校验和`InnoDB`. | 由`没有一个`, `innodb`或`crc32`. `InnoDB`如果遇到有效但不匹配的校验和，则打印错误消息。 |
    | 严格的\_crc32 | 使用`crc32`算法，可能需要硬件辅助。 | 由`没有一个`, `innodb`或`crc32`. `InnoDB`如果遇到有效但不匹配的校验和，则打印错误消息。 |

-   [](<>) [`innodb_cmp_每_索引已启用`](innodb-parameters.html#sysvar_innodb_cmp_per_index_enabled)

    [](<>)[](<>)

    | 命令行格式 | `--innodb cmp每索引启用[={OFF | ON}]` |
    | ----- | -------------------------------- |
    | 系统变量 | `[innodb_cmp_per_index_enabled]（innodb parameters.html#sysvar_innodb_cmp_per_index_enabled）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    在中启用与每索引压缩相关的统计信息[`信息模式。INNODB_CMP_每_索引`](information-schema-innodb-cmp-per-index-table.html)桌子由于收集这些统计信息的成本可能会很高，因此在与这些统计信息相关的性能调整期间，仅在开发、测试或复制实例上启用此选项`InnoDB` [压缩的](glossary.html#glos_compression)桌子。

    有关更多信息，请参阅[第26.4.8节，“信息\_模式INNODB\_化学机械抛光\_每\_索引和INNODB\_化学机械抛光\_每\_指数\_“重置表格”](information-schema-innodb-cmp-per-index-table.html)和[第15.9.1.4节，“运行时监视InnoDB表压缩”](innodb-compression-tuning-monitoring.html).

-   [](<>) [`innodb_提交_并发`](innodb-parameters.html#sysvar_innodb_commit_concurrency)

    [](<>)[](<>)[](<>)

    | 命令行格式 | `--innodb提交并发=#` |
    | ----- | ---------------- |
    | 系统变量 | `[innodb_commit_concurrency]（innodb parameters.html#sysvar_innodb_commit_concurrency）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `0` |
    | 最小值 | `0` |
    | 最大值 | `1000` |

    人数[线程](glossary.html#glos_thread)那可以[犯罪](glossary.html#glos_commit)同时值为0（默认值）时，允许任意数量的[交易](glossary.html#glos_transaction)同时进行。

    价值[`innodb_提交_并发`](innodb-parameters.html#sysvar_innodb_commit_concurrency)不能在运行时从零更改为非零，反之亦然。该值可以从一个非零值更改为另一个非零值。

-   [](<>) [`innodb_压缩_调试`](innodb-parameters.html#sysvar_innodb_compress_debug)

    [](<>)[](<>)

    | 命令行格式 | `--innodb compress debug=value` |
    | ----- | ------------------------------- |
    | 系统变量 | `[innodb_compress_debug]（innodb parameters.html#sysvar_innodb_compress_debug）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 列举 |
    | 默认值 | `没有一个` |
    | 有效值 | `没有一个`<br/><br/>`兹利布`<br/><br/>`lz4`<br/><br/>`lz4hc` |

    使用指定的压缩算法压缩所有表，而无需定义`压缩`每个表的属性。只有在使用中编译调试支持时，此选项才可用[`用_调试`](source-configuration-options.html#option_cmake_with_debug) **CMake**选项

    有关相关信息，请参阅[第15.9.2节，“InnoDB页面压缩”](innodb-page-compression.html).

-   [](<>) [`innodb_压缩_故障_阈值_pct`](innodb-parameters.html#sysvar_innodb_compression_failure_threshold_pct)

    [](<>)[](<>)

    | 命令行格式 | `--innodb压缩失败阈值pct=#` |
    | ----- | --------------------- |
    | 系统变量 | `[innodb_compression_failure_threshold_pct]（innodb parameters.html#sysvar_innodb_compression_failure_threshold_pct）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `5.` |
    | 最小值 | `0` |
    | 最大值 | `100` |

    定义表的压缩失败率阈值（以百分比表示），MySQL将在该阈值内开始添加填充[压缩的](glossary.html#glos_compression)避免使用昂贵的页面[压缩失效](glossary.html#glos_compression_failure)。当超过此阈值时，MySQL开始在每个新的压缩页面中留下额外的可用空间，动态调整可用空间量，使其达到[`innodb_compression_pad_pct_max`](innodb-parameters.html#sysvar_innodb_compression_pad_pct_max)。值为零将禁用监视压缩效率并动态调整填充量的机制。

    有关更多信息，请参阅[第15.9.1.6节，“OLTP工作负载的压缩”](innodb-performance-compression-oltp.html).

-   [](<>) [`innodb_压缩_级别`](innodb-parameters.html#sysvar_innodb_compression_level)

    [](<>)[](<>)

    | 命令行格式 | `--innodb压缩级别=#` |
    | ----- | ---------------- |
    | 系统变量 | `[innodb_compression_level]（innodb parameters.html#sysvar_innodb_compression_level）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `6.` |
    | 最小值 | `0` |
    | 最大值 | `9` |

    指定要用于的zlib压缩级别`InnoDB` [压缩的](glossary.html#glos_compression)表和索引。更高的值可以让您在存储设备上安装更多数据，但在压缩过程中会增加CPU开销。当存储空间不重要，或者您认为数据不是特别可压缩时，较低的值可以减少CPU开销。

    有关更多信息，请参阅[第15.9.1.6节，“OLTP工作负载的压缩”](innodb-performance-compression-oltp.html).

-   [](<>) [`innodb_compression_pad_pct_max`](innodb-parameters.html#sysvar_innodb_compression_pad_pct_max)

    [](<>)[](<>)

    | 命令行格式 | `--innodb压缩垫pct最大值=#` |
    | ----- | --------------------- |
    | 系统变量 | `[innodb_compression_pad_pct_max]（innodb parameters.html#sysvar_innodb_compression_pad_pct_max）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `50` |
    | 最小值 | `0` |
    | 最大值 | `75` |

    指定每个压缩空间中可以保留为可用空间的最大百分比[页](glossary.html#glos_page)，允许在出现错误时重新组织页面中的数据和修改日志[压缩的](glossary.html#glos_compression)表或索引被更新，数据可能会被重新压缩。仅适用于以下情况：[`innodb_压缩_故障_阈值_pct`](innodb-parameters.html#sysvar_innodb_compression_failure_threshold_pct)设置为非零值，并且[压缩失效](glossary.html#glos_compression_failure)通过截止点。

    有关更多信息，请参阅[第15.9.1.6节，“OLTP工作负载的压缩”](innodb-performance-compression-oltp.html).

-   [](<>) [`innodb_并发_票据`](innodb-parameters.html#sysvar_innodb_concurrency_tickets)

    [](<>)[](<>)[](<>)

    | 命令行格式 | `--innodb并发票据=#` |
    | ----- | ---------------- |
    | 系统变量 | `[innodb_concurrency_tickets]（innodb parameters.html#sysvar_innodb_concurrency_tickets）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `5000` |
    | 最小值 | `1.` |
    | 最大值 | `4294967295` |

    确定[线程](glossary.html#glos_thread)可以进入`InnoDB`同时当线程试图进入队列时，它会被放入队列中`InnoDB`如果线程数已达到并发限制。当允许螺纹进入时`InnoDB`，它会得到一个等于[`innodb_并发_票据`](innodb-parameters.html#sysvar_innodb_concurrency_tickets)，线程可以进入和离开`InnoDB`直到票用完为止。在这一点之后，线程在下次尝试进入时再次受到并发性检查（以及可能的排队）的约束`InnoDB`。默认值为5000。

    用一个小的[`innodb_并发_票据`](innodb-parameters.html#sysvar_innodb_concurrency_tickets)值，只需要处理几行的小事务与处理多行的大事务公平竞争。小公司的缺点[`innodb_并发_票据`](innodb-parameters.html#sysvar_innodb_concurrency_tickets)其价值在于，大型事务必须在队列中循环多次才能完成，这延长了完成任务所需的时间。

    有一个很大的[`innodb_并发_票据`](innodb-parameters.html#sysvar_innodb_concurrency_tickets)值，大型事务花费更少的时间等待队列末尾的位置（由[`innodb_线程_并发`](innodb-parameters.html#sysvar_innodb_thread_concurrency))还有更多时间检索行。大型事务还需要较少的队列行程来完成任务。大型企业的劣势[`innodb_并发_票据`](innodb-parameters.html#sysvar_innodb_concurrency_tickets)其价值在于，太多同时运行的大型事务会让较小的事务在执行之前等待更长的时间，从而导致它们无法正常运行。

    使用非零[`innodb_线程_并发`](innodb-parameters.html#sysvar_innodb_thread_concurrency)值，则可能需要调整[`innodb_并发_票据`](innodb-parameters.html#sysvar_innodb_concurrency_tickets)向上或向下估值，以在较大和较小的交易之间找到最佳平衡。这个`显示引擎INNODB状态`报告显示当前通过队列的正在执行的事务的剩余票证数。这些数据也可以从`TRX_并发_票证`专栏[`信息模式。INNODB_TRX`](information-schema-innodb-trx-table.html)桌子

    有关更多信息，请参阅[第15.8.4节，“为InnoDB配置线程并发性”](innodb-performance-thread_concurrency.html).

-   [](<>) [`innodb_数据_文件_路径`](innodb-parameters.html#sysvar_innodb_data_file_path)

    [](<>)[](<>)

    | 命令行格式 | `--innodb数据文件路径=文件名` |
    | ----- | -------------------- |
    | 系统变量 | `[innodb_data_file_path]（innodb parameters.html#sysvar_innodb_data_file_path）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 一串 |
    | 默认值 | `ibdata1:12M:自动扩展` |

    定义的名称、大小和属性`InnoDB`系统表空间数据文件。如果未指定[`innodb_数据_文件_路径`](innodb-parameters.html#sysvar_innodb_data_file_path)，默认行为是创建一个自动扩展的数据文件，略大于12MB，名为`ibdata1`.

    数据文件规范的完整语法包括文件名、文件大小、，`自动扩展`属性，以及`最大值`属性：

    ```
    file_name:file_size[:autoextend[:max:max_file_size]]
    ```

    文件大小通过附加以千字节、兆字节或千兆字节为单位指定`K`, `M`或`G`到大小值。如果以KB为单位指定数据文件大小，请以1024的倍数指定。否则，KB值将四舍五入到最接近的MB边界。文件大小之和至少必须略大于12MB。

    有关其他配置信息，请参阅[系统表空间数据文件配置](innodb-init-startup-configuration.html#innodb-startup-data-file-configuration).有关调整大小的说明，请参阅[调整系统表空间的大小](innodb-system-tablespace.html#innodb-resize-system-tablespace).

-   [](<>) [`innodb_数据_主页_目录`](innodb-parameters.html#sysvar_innodb_data_home_dir)

    [](<>)[](<>)

    | 命令行格式 | `--innodb data home dir=dir_name` |
    | ----- | --------------------------------- |
    | 系统变量 | `[innodb_data_home_dir]（innodb parameters.html#sysvar_innodb_data_home_dir）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 目录名 |

    的目录路径的公共部分`InnoDB` [系统表空间](glossary.html#glos_system_tablespace)数据文件。默认值是MySQL`数据`目录该设置与[`innodb_数据_文件_路径`](innodb-parameters.html#sysvar_innodb_data_file_path)设置，除非该设置是用绝对路径定义的。

    为指定值时，需要使用尾随斜杠[`innodb_数据_主页_目录`](innodb-parameters.html#sysvar_innodb_data_home_dir).例如：

    ```
    [mysqld]
    innodb_data_home_dir = /path/to/myibdata/
    ```

    此设置不影响文件的位置[每个表的文件数](glossary.html#glos_file_per_table)表空间。

    有关相关信息，请参阅[第15.8.1节，“InnoDB启动配置”](innodb-init-startup-configuration.html).

-   [](<>) [`innodb_ddl_缓冲区_大小`](innodb-parameters.html#sysvar_innodb_ddl_buffer_size)

    [](<>)[](<>)

    | 命令行格式 | `--innodb ddl缓冲区大小=#` |
    | ----- | --------------------- |
    | 介绍 | 8.0.27 |
    | 系统变量 | `[innodb_ddl_buffer_size]（innodb parameters.html#sysvar_innodb_ddl_buffer_size）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `1048576` |
    | 最小值 | `65536` |
    | 最大值 | `4294967295` |

    定义DDL操作的最大缓冲区大小。默认设置为1048576字节（约1 MB）。适用于创建或重建二级索引的联机DDL操作。看见[第15.12.4节，“在线DDL内存管理”](online-ddl-memory-management.html)。每个DDL线程的最大缓冲区大小是最大缓冲区大小除以DDL线程数([`innodb_ddl_缓冲区_大小`](innodb-parameters.html#sysvar_innodb_ddl_buffer_size)/[`innodb_ddl_线程`](innodb-parameters.html#sysvar_innodb_ddl_threads)).

-   [](<>) [`innodb_ddl_log_crash_reset_debug`](innodb-parameters.html#sysvar_innodb_ddl_log_crash_reset_debug)

    [](<>)[](<>)

    | 命令行格式 | `--innodb ddl日志崩溃重置调试[={OFF | ON}]` |
    | ----- | ----------------------------------- |
    | 系统变量 | `[innodb_ddl_log_crash_reset_debug]（innodb parameters.html#sysvar_innodb_ddl_log_crash_reset_debug）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    启用此调试选项可将DDL日志崩溃注入计数器重置为1。只有在使用中编译调试支持时，此选项才可用[`用_调试`](source-configuration-options.html#option_cmake_with_debug) **CMake**选项

-   [](<>) [`innodb_ddl_线程`](innodb-parameters.html#sysvar_innodb_ddl_threads)

    [](<>)[](<>)

    | 命令行格式 | `--innodb ddl线程=#` |
    | ----- | ------------------ |
    | 介绍 | 8.0.27 |
    | 系统变量 | `[innodb_ddl_threads]（innodb parameters.html#sysvar_innodb_ddl_threads）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `4.` |
    | 最小值 | `1.` |
    | 最大值 | `64` |

    定义索引创建的排序和生成阶段的最大并行线程数。适用于创建或重建二级索引的联机DDL操作。有关相关信息，请参阅[第15.12.5节，“为在线DDL操作配置并行线程”](online-ddl-parallel-thread-configuration.html)和[第15.12.4节，“在线DDL内存管理”](online-ddl-memory-management.html).

-   [](<>) [`innodb_死锁_检测`](innodb-parameters.html#sysvar_innodb_deadlock_detect)

    [](<>)[](<>)

    | 命令行格式 | `--innodb死锁检测[={OFF | ON}]` |
    | ----- | --------------------------- |
    | 系统变量 | `[innodb_deadlock_detect]（innodb parameters.html#sysvar_innodb_deadlock_detect）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `在…上` |

    此选项用于禁用死锁检测。在高并发系统上，当多个线程等待同一个锁时，死锁检测可能会导致速度减慢。有时，禁用死锁检测并依赖[`innodb\u锁定\u等待\u超时`](innodb-parameters.html#sysvar_innodb_lock_wait_timeout)发生死锁时事务回滚的设置。

    有关相关信息，请参阅[第15.7.5.2节，“死锁检测”](innodb-deadlock-detection.html).

-   [](<>) [`innodb_专用_服务器`](innodb-parameters.html#sysvar_innodb_dedicated_server)

    [](<>)[](<>)

    | 命令行格式 | `--innodb专用服务器[={OFF | ON}]` |
    | ----- | ---------------------------- |
    | 系统变量 | `[innodb_专用_服务器]（innodb parameters.html#sysvar_innodb_专用_服务器）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    什么时候[`innodb_专用_服务器`](innodb-parameters.html#sysvar_innodb_dedicated_server)已启用，`InnoDB`自动配置以下变量：

    -   [`innodb_缓冲区_池_大小`](innodb-parameters.html#sysvar_innodb_buffer_pool_size)

    -   [`innodb_日志_文件_大小`](innodb-parameters.html#sysvar_innodb_log_file_size)

    -   [`innodb_日志_文件_在_组中`](innodb-parameters.html#sysvar_innodb_log_files_in_group)（从MySQL 8.0.14开始）

    -   [`innodb_flush_方法`](innodb-parameters.html#sysvar_innodb_flush_method)

        只考虑启用[`innodb_专用_服务器`](innodb-parameters.html#sysvar_innodb_dedicated_server)如果MySQL实例位于专用服务器上，它可以使用所有可用的系统资源。有可能[`innodb_专用_服务器`](innodb-parameters.html#sysvar_innodb_dedicated_server)如果MySQL实例与其他应用程序共享系统资源，则不建议使用。

        有关更多信息，请参阅[第15.8.12节，“为专用MySQL服务器启用自动配置”](innodb-dedicated-server.html).

-   [](<>) [`innodb_默认_行_格式`](innodb-parameters.html#sysvar_innodb_default_row_format)

    [](<>)[](<>)

    | 命令行格式 | `--innodb默认行格式=值` |
    | ----- | ----------------- |
    | 系统变量 | `[innodb_default_row_format]（innodb parameters.html#sysvar_innodb_default_row_format）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 列举 |
    | 默认值 | `动态` |
    | 有效值 | `冗余的`<br/><br/>`契约`<br/><br/>`动态` |

    这个[`innodb_默认_行_格式`](innodb-parameters.html#sysvar_innodb_default_row_format)选项定义的默认行格式`InnoDB`表和用户创建的临时表。默认设置为`动态`.其他允许值包括`契约`和`冗余的`这个`压缩的`行格式，不支持在中使用[系统表空间](glossary.html#glos_system_tablespace)，不能定义为默认值。

    新创建的表使用[`innodb_默认_行_格式`](innodb-parameters.html#sysvar_innodb_default_row_format)当`行格式`选项未明确指定，或者`行\格式=默认值`被使用了。

    当`行格式`选项未明确指定，或者`行\格式=默认值`使用时，任何重建表的操作也会将表的行格式静默更改为[`innodb_默认_行_格式`](innodb-parameters.html#sysvar_innodb_default_row_format)。有关更多信息，请参阅[定义表的行格式](innodb-row-format.html#innodb-row-format-defining).

    内部的`InnoDB`服务器为处理查询而创建的临时表使用`动态的`行格式，无论[`innodb_default_row_format`](innodb-parameters.html#sysvar_innodb_default_row_format)环境。

-   [](<>) [`innodb_directories`](innodb-parameters.html#sysvar_innodb_directories)

    [](<>)[](<>)

    | 命令行格式 | `--innodb-directories=目录名` |
    | ----- | -------------------------- |
    | 系统变量 | `[innodb_directories](innodb-parameters.html#sysvar_innodb_directories)` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 目录名称 |
    | 默认值 | `空值` |

    定义在启动时扫描表空间文件的目录。在服务器脱机时将表空间文件移动或恢复到新位置时使用此选项。它还用于指定使用绝对路径创建的或位于数据目录之外的表空间文件的目录。

    崩溃恢复期间的表空间发现依赖于[`innodb_directories`](innodb-parameters.html#sysvar_innodb_directories)设置以识别重做日志中引用的表空间。有关详细信息，请参阅[崩溃恢复期间的表空间发现](innodb-recovery.html#innodb-recovery-tablespace-discovery).

    默认值为 NULL，但目录由[`innodb_data_home_dir`](innodb-parameters.html#sysvar_innodb_data_home_dir),[`innodb_undo_directory`](innodb-parameters.html#sysvar_innodb_undo_directory)， 和[`数据目录`](server-system-variables.html#sysvar_datadir)总是附加到[`innodb_directories`](innodb-parameters.html#sysvar_innodb_directories)参数值当`InnoDB`构建目录列表以在启动时扫描。无论是否添加了这些目录[`innodb_directories`](innodb-parameters.html#sysvar_innodb_directories)设置是明确指定的。

    [`innodb_directories`](innodb-parameters.html#sysvar_innodb_directories)可以在启动命令或 MySQL 选项文件中指定为选项。引号包围参数值，因为否则一些命令解释器会解释分号 (`;`) 作为特殊字符。（例如，Unix shell 将其视为命令终止符。）

    启动命令：

    ```
    mysqld --innodb-directories="directory_path_1;directory_path_2"
    ```

    MySQL 选项文件：

    ```
    [mysqld]
    innodb_directories="directory_path_1;directory_path_2"
    ```

    通配符表达式不能用于指定目录。

    这[`innodb_directories`](innodb-parameters.html#sysvar_innodb_directories)scan 还会遍历指定目录的子目录。从要扫描的目录列表中丢弃重复的目录和子目录。

    有关详细信息，请参阅[第 15.6.3.6 节，“在服务器脱机时移动表空间文件”](innodb-moving-data-files-offline.html).

-   [](<>) [`innodb_disable_sort_file_cache`](innodb-parameters.html#sysvar_innodb_disable_sort_file_cache)

    [](<>)[](<>)

    | 命令行格式 | `--innodb-disable-sort-file-cache[={OFF|ON}]` |
    | ----- | --------------------------------------------- |
    | 系统变量 | `[innodb_disable_sort_file_cache](innodb-parameters.html#sysvar_innodb_disable_sort_file_cache)` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `离开` |

    禁用合并排序临时文件的操作系统文件系统缓存。效果是打开这样的文件相当于`O_DIRECT`.

-   [](<>) [`innodb_doublewrite`](innodb-parameters.html#sysvar_innodb_doublewrite)

    [](<>)[](<>)[](<>)

    | 命令行格式 | `--innodb-doublewrite[={OFF|ON}]` |
    | ----- | --------------------------------- |
    | 系统变量 | `[innodb_doublewrite](innodb-parameters.html#sysvar_innodb_doublewrite)` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `在` |

    这[`innodb_doublewrite`](innodb-parameters.html#sysvar_innodb_doublewrite)变量控制是否启用双写缓冲区。在大多数情况下，它默认启用。要禁用双写缓冲区，请设置[`innodb_doublewrite`](innodb-parameters.html#sysvar_innodb_doublewrite)为 0 或启动服务器`--skip-innodb-doublewrite`.如果您更关心性能而不是数据完整性，您可能会考虑禁用双写缓冲区，例如在执行基准测试时可能会出现这种情况。

    如果双写缓冲区位于支持原子写入的 Fusion-io 设备上，则会自动禁用双写缓冲区，并使用 Fusion-io 原子写入执行数据文件写入。但是，请注意，[`innodb_doublewrite`](innodb-parameters.html#sysvar_innodb_doublewrite)设置是全局的。当双写缓冲区被禁用时，所有数据文件都被禁用，包括那些不驻留在 Fusion-io 硬件上的文件。此功能仅在 Fusion-io 硬件上受支持，并且仅在 Linux 上为 Fusion-io NVMFS 启用。为了充分利用此功能，一个[`innodb_flush_method`](innodb-parameters.html#sysvar_innodb_flush_method)的设置`O_DIRECT`被推荐。

    有关相关信息，请参阅[第 15.6.4 节，“双写缓冲区”](innodb-doublewrite-buffer.html).

-   [](<>) [`innodb_doublewrite_batch_size`](innodb-parameters.html#sysvar_innodb_doublewrite_batch_size)

    [](<>)[](<>)

    | 命令行格式 | `--innodb-doublewrite-batch-size=#` |
    | ----- | ----------------------------------- |
    | 介绍 | 8.0.20 |
    | 系统变量 | `[innodb_doublewrite_batch_size](innodb-parameters.html#sysvar_innodb_doublewrite_batch_size)` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `0` |
    | 最小值 | `0` |
    | 最大值 | `256` |

    定义批量写入的双写页数。

    有关详细信息，请参阅[第 15.6.4 节，“双写缓冲区”](innodb-doublewrite-buffer.html).

-   [](<>) [`innodb_doublewrite_dir`](innodb-parameters.html#sysvar_innodb_doublewrite_dir)

    [](<>)[](<>)

    | 命令行格式 | `--innodb-doublewrite-dir=dir_name` |
    | ----- | ----------------------------------- |
    | 介绍 | 8.0.20 |
    | 系统变量 | `[innodb_doublewrite_dir](innodb-parameters.html#sysvar_innodb_doublewrite_dir)` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 目录名称 |

    定义双写文件的目录。如果未指定目录，则在[`innodb_data_home_dir`](innodb-parameters.html#sysvar_innodb_data_home_dir)目录，如果未指定，则默认为数据目录。

    有关详细信息，请参阅[第 15.6.4 节，“双写缓冲区”](innodb-doublewrite-buffer.html).

-   [](<>) [`innodb_doublewrite_files`](innodb-parameters.html#sysvar_innodb_doublewrite_files)

    [](<>)[](<>)

    | 命令行格式 | `--innodb-doublewrite-files=#` |
    | ----- | ------------------------------ |
    | 介绍 | 8.0.20 |
    | 系统变量 | `[innodb_doublewrite_files](innodb-parameters.html#sysvar_innodb_doublewrite_files)` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `innodb_buffer_pool_instances * 2` |
    | 最小值 | `2` |
    | 最大值 | `256` |

    定义双写文件的数量。默认情况下，为每个缓冲池实例创建两个双写文件。

    至少有两个双写文件。双写文件的最大数量是缓冲池实例数量的两倍。（缓冲池实例的数量由[`innodb_buffer_pool_instances`](innodb-parameters.html#sysvar_innodb_buffer_pool_instances)多变的。）

    有关详细信息，请参阅[第 15.6.4 节，“双写缓冲区”](innodb-doublewrite-buffer.html).

-   [](<>) [`innodb_doublewrite_pages`](innodb-parameters.html#sysvar_innodb_doublewrite_pages)

    [](<>)[](<>)

    | 命令行格式 | `--innodb-doublewrite-pages=#` |
    | ----- | ------------------------------ |
    | 介绍 | 8.0.20 |
    | 系统变量 | `[innodb_doublewrite_pages](innodb-parameters.html#sysvar_innodb_doublewrite_pages)` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `innodb_write_io_threads 值` |
    | 最小值 | `innodb_write_io_threads 值` |
    | 最大值 | `512` |

    为批量写入定义每个线程的最大双写页数。如果没有指定值，[`innodb_doublewrite_pages`](innodb-parameters.html#sysvar_innodb_doublewrite_pages)设置为[`innodb_write_io_threads`](innodb-parameters.html#sysvar_innodb_write_io_threads)价值。

    有关详细信息，请参阅[第 15.6.4 节，“双写缓冲区”](innodb-doublewrite-buffer.html).

-   [](<>) [`innodb_extend_and_initialize`](innodb-parameters.html#sysvar_innodb_extend_and_initialize)

    [](<>)[](<>)

    | 命令行格式 | `--innodb=扩展和初始化[={OFF|ON}]` |
    | ----- | ---------------------------- |
    | 介绍 | 8.0.22 |
    | 系统变量 | `[innodb_extend_and_initialize](innodb-parameters.html#sysvar_innodb_extend_and_initialize)` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `在` |

    控制如何将空间分配给 Linux 系统上的 file-per-table 和通用表空间。

    启用时，`InnoDB`将 NULL 写入新分配的页面。禁用时，空间分配使用`posix_fallocate()`调用，它保留空间而无需物理写入 NULL。

    有关详细信息，请参阅[第 15.6.3.8 节，“在 Linux 上优化表空间空间分配”](innodb-optimize-tablespace-page-allocation.html).

-   [](<>) [`innodb_fast_shutdown`](innodb-parameters.html#sysvar_innodb_fast_shutdown)

    [](<>)[](<>)

    | 命令行格式 | `--innodb-fast-shutdown=#` |
    | ----- | -------------------------- |
    | 系统变量 | `[innodb_fast_shutdown](innodb-parameters.html#sysvar_innodb_fast_shutdown)` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `1` |
    | 有效值 | `0`<br/><br/>`1`<br/><br/>`2` |

    这`InnoDB` [关掉](glossary.html#glos_shutdown)模式。如果值为 0，`InnoDB`做一个[缓慢关机](glossary.html#glos_slow_shutdown)， 满满的[清除](glossary.html#glos_purge)并在关闭之前合并更改缓冲区。如果值为 1（默认值），`InnoDB`在关机时跳过这些操作，这个过程称为[快速关机](glossary.html#glos_fast_shutdown).如果值为 2，`InnoDB`刷新它的日志并关闭冷，好像 MySQL 已经崩溃了；没有提交的事务丢失，但是[崩溃恢复](glossary.html#glos_crash_recovery)操作使下次启动时间更长。

    在仍然缓冲大量数据的极端情况下，缓慢关闭可能需要几分钟甚至几小时。在 MySQL 主要版本之间升级或降级之前使用慢速关闭技术，以便在升级过程更新文件格式时做好所有数据文件的准备。

    采用[`innodb_fast_shutdown=2`](innodb-parameters.html#sysvar_innodb_fast_shutdown)在紧急情况或故障排除情况下，如果数据有损坏的风险，则能够以最快的速度关闭。

-   [](<>) [`innodb_fil_make_page_dirty_debug`](innodb-parameters.html#sysvar_innodb_fil_make_page_dirty_debug)

    [](<>)[](<>)

    | 命令行格式 | `--innodb-fil-make-page-dirty-debug=#` |
    | ----- | -------------------------------------- |
    | 系统变量 | `[innodb_fil_make_page_dirty_debug](innodb-parameters.html#sysvar_innodb_fil_make_page_dirty_debug)` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `0` |
    | 最大值 | `2**32-1` |

    默认情况下，设置[`innodb_fil_make_page_dirty_debug`](innodb-parameters.html#sysvar_innodb_fil_make_page_dirty_debug)到表空间的 ID 会立即弄脏表空间的第一页。如果[`innodb_saved_pa​​ge_number_debug`](innodb-parameters.html#sysvar_innodb_saved_page_number_debug)设置为非默认值，设置[`innodb_fil_make_page_dirty_debug`](innodb-parameters.html#sysvar_innodb_fil_make_page_dirty_debug)弄脏指定的页面。这[`innodb_fil_make_page_dirty_debug`](innodb-parameters.html#sysvar_innodb_fil_make_page_dirty_debug)只有在使用[`WITH_DEBUG`](source-configuration-options.html#option_cmake_with_debug) **制作**选项。

-   [](<>) [`innodb_file_per_table`](innodb-parameters.html#sysvar_innodb_file_per_table)

    [](<>)[](<>)

    | 命令行格式 | `--innodb-file-per-table[={OFF|ON}]` |
    | ----- | ------------------------------------ |
    | 系统变量 | `[innodb_file_per_table](innodb-parameters.html#sysvar_innodb_file_per_table)` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `在` |

    什么时候[`innodb_file_per_table`](innodb-parameters.html#sysvar_innodb_file_per_table)启用时，默认情况下在 file-per-table 表空间中创建表。禁用时，默认情况下会在系统表空间中创建表。有关 file-per-table 表空间的信息，请参阅[第 15.6.3.2 节，“File-Per-Table 表空间”](innodb-file-per-table-tablespaces.html).有关信息`InnoDB`系统表空间，见[第 15.6.3.1 节，“系统表空间”](innodb-system-tablespace.html).

    这[`innodb_file_per_table`](innodb-parameters.html#sysvar_innodb_file_per_table)变量可以在运行时使用[`设置全球`](set-variable.html)语句，在启动时在命令行上指定，或在选项文件中指定。运行时配置需要足够的权限来设置全局系统变量（参见[第 5.1.9.1 节，“系统变量权限”](system-variable-privileges.html)) 并立即影响所有连接的操作。

    当驻留在 file-per-table 表空间中的表被截断或删除时，释放的空间将返回给操作系统。截断或删除驻留在系统表空间中的表只会释放系统表空间中的空间。系统表空间中释放的空间可以再次用于`InnoDB`数据但不会返回给操作系统，因为系统表空间数据文件永远不会收缩。

    这[`innodb_file_per-table`](innodb-parameters.html#sysvar_innodb_file_per_table)设置不影响临时表的创建。从 MySQL 8.0.14 开始，临时表是在会话临时表空间中创建的，在此之前是在全局临时表空间中创建的。看[第 15.6.3.5 节，“临时表空间”](innodb-temporary-tablespace.html).

-   [](<>) [`innodb_fill_factor`](innodb-parameters.html#sysvar_innodb_fill_factor)

    [](<>)[](<>)

    | 命令行格式 | `--innodb-填充因子=#` |
    | ----- | ----------------- |
    | 系统变量 | `[innodb_fill_factor](innodb-parameters.html#sysvar_innodb_fill_factor)` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `100` |
    | 最小值 | `10` |
    | 最大值 | `100` |

    `InnoDB`创建或重建索引时执行批量加载。这种创建索引的方法称为“排序索引构建”。

    [`innodb_fill_factor`](innodb-parameters.html#sysvar_innodb_fill_factor)定义在排序索引构建期间填充的每个 B 树页面上的空间百分比，剩余空间保留用于将来的索引增长。例如，设置[`innodb_fill_factor`](innodb-parameters.html#sysvar_innodb_fill_factor)to 80 在每个 B 树页面上保留 20% 的空间用于未来的索引增长。实际百分比可能会有所不同。这[`innodb_fill_factor`](innodb-parameters.html#sysvar_innodb_fill_factor)设置被解释为提示而不是硬限制。

    一个[`innodb_fill_factor`](innodb-parameters.html#sysvar_innodb_fill_factor)设置为 100 会留下聚集索引页中 1/16 的空间用于未来的索引增长。

    [`innodb_fill_factor`](innodb-parameters.html#sysvar_innodb_fill_factor)适用于 B 树的叶子和非叶子页面。它不适用于用于[`文本`](blob.html)要么[`斑点`](blob.html)条目。

    有关详细信息，请参阅[第 15.6.2.3 节，“排序索引构建”](sorted-index-builds.html).

-   [](<>) [`innodb_flush_log_at_timeout`](innodb-parameters.html#sysvar_innodb_flush_log_at_timeout)

    [](<>)[](<>)

    | 命令行格式 | `--innodb-flush-log-at-timeout=#` |
    | ----- | --------------------------------- |
    | 系统变量 | `[innodb_flush_log_at_timeout](innodb-parameters.html#sysvar_innodb_flush_log_at_timeout)` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `1` |
    | 最小值 | `1` |
    | 最大值 | `2700` |

    每次写入并刷新日志*`ñ`*秒。[`innodb_flush_log_at_timeout`](innodb-parameters.html#sysvar_innodb_flush_log_at_timeout)允许增加刷新之间的超时时间，以减少刷新并避免影响二进制日志组提交的性能。默认设置为[`innodb_flush_log_at_timeout`](innodb-parameters.html#sysvar_innodb_flush_log_at_timeout)是每秒一次。

-   [](<>) [`innodb_flush_log_at_trx_commit`](innodb-parameters.html#sysvar_innodb_flush_log_at_trx_commit)

    [](<>)[](<>)

    | 命令行格式 | `--innodb-flush-log-at-trx-commit=#` |
    | ----- | ------------------------------------ |
    | 系统变量 | `[innodb_flush_log_at_trx_commit]（innodb-parameters.html#sysvar_innodb_flush_log_at_trx_commit）` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 枚举 |
    | 默认值 | `1` |
    | 有效值 | `0`<br/><br/>`1`<br/><br/>`2` |

    控制严格之间的平衡[酸](glossary.html#glos_acid)合规性[犯罪](glossary.html#glos_commit)当与提交相关的 I/O 操作重新排列并分批完成时，操作和更高的性能是可能的。您可以通过更改默认值来获得更好的性能，但是您可能会在崩溃中丢失事务。

    -   完全符合 ACID 要求默认设置 1。日志在每次事务提交时写入并刷新到磁盘。

    -   设置为 0 时，日志每秒写入一次并刷新到磁盘。未刷新日志的事务可能会在崩溃中丢失。

    -   如果设置为 2，则在每次事务提交后写入日志并每秒刷新一次到磁盘。未刷新日志的事务可能会在崩溃中丢失。

    -   对于设置 0 和 2，不能 100% 保证每秒冲洗一次。由于 DDL 更改和其他内部问题，刷新可能会更频繁地发生`InnoDB`导致日志独立于[`innodb_flush_log_at_trx_commit`](innodb-parameters.html#sysvar_innodb_flush_log_at_trx_commit)设置，有时由于调度问题而不太频繁。如果日志每秒刷新一次，那么在崩溃中最多可能会丢失一秒钟的事务。如果刷新日志的频率高于或低于每秒一次，则可能丢失的事务量会相应变化。

    -   日志刷新频率由[`innodb_flush_log_at_timeout`](innodb-parameters.html#sysvar_innodb_flush_log_at_timeout)，它允许您将日志刷新频率设置为*`ñ`*秒（其中*`ñ`*是`1 ... 2700`, 默认值为 1)。然而，任何意想不到的[**mysqld**](mysqld.html)进程退出最多可以擦除*`ñ`*几秒钟的交易。

    -   DDL 更改和其他内部`InnoDB`活动刷新日志独立于[`innodb_flush_log_at_trx_commit`](innodb-parameters.html#sysvar_innodb_flush_log_at_trx_commit)环境。

    -   `InnoDB` [崩溃恢复](glossary.html#glos_crash_recovery)作品不管[`innodb_flush_log_at_trx_commit`](innodb-parameters.html#sysvar_innodb_flush_log_at_trx_commit)环境。事务要么完全应用，要么完全删除。

        为了在使用的复制设置中实现持久性和一致性`InnoDB`与交易：

    -   如果启用二进制日志记录，请设置`sync_binlog=1`.

    -   始终设置[`innodb_flush_log_at_trx_commit=1`](innodb-parameters.html#sysvar_innodb_flush_log_at_trx_commit).

        有关对意外停止最具弹性的副本上的设置组合的信息，请参阅[第 17.4.2 节，“处理副本的意外停止”](replication-solutions-unexpected-replica-halt.html).

    警告

    许多操作系统和一些磁盘硬件欺骗了刷新到磁盘操作。他们可能会告诉[**mysqld**](mysqld.html)冲洗已经发生，即使它没有发生。在这种情况下，即使使用推荐的设置也无法保证交易的持久性，在最坏的情况下，停电可能会破坏`InnoDB`数据。在 SCSI 磁盘控制器或磁盘本身中使用电池支持的磁盘缓存可加快文件刷新速度，并使操作更安全。您还可以尝试禁用硬件缓存中磁盘写入的缓存。

-   [](<>) [`innodb_flush_method`](innodb-parameters.html#sysvar_innodb_flush_method)

    [](<>)[](<>)

    | 命令行格式 | `--innodb-flush-method=值` |
    | ----- | ------------------------- |
    | 系统变量 | `[innodb_flush_method](innodb-parameters.html#sysvar_innodb_flush_method)` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 细绳 |
    | 默认值 (Unix) | `同步` |
    | 默认值 (Windows) | `无缓冲` |
    | 有效值 (Unix) | `同步`<br/><br/>`O_DSYNC`<br/><br/>`小同步`<br/><br/>`不同步`<br/><br/>`O_DIRECT`<br/><br/>`O_DIRECT_NO_FSYNC` |
    | 有效值 (Windows) | `无缓冲`<br/><br/>`普通的` |

    定义用于[冲洗](glossary.html#glos_flush)数据到`InnoDB` [数据文件](glossary.html#glos_data_files)和[日志文件](glossary.html#glos_log_file)，这会影响 I/O 吞吐量。

    在类 Unix 系统上，默认值为`同步`.在 Windows 上，默认值为`无缓冲`.

    笔记

    在 MySQL 8.0 中，[`innodb_flush_method`](innodb-parameters.html#sysvar_innodb_flush_method)选项可以用数字指定。

    这[`innodb_flush_method`](innodb-parameters.html#sysvar_innodb_flush_method)类 Unix 系统的选项包括：

    -   `同步`要么`0`：`InnoDB`使用`同步（）`系统调用来刷新数据和日志文件。`同步`是默认设置。

    -   `O_DSYNC`要么`1`：`InnoDB`用途`O_SYNC`打开和刷新日志文件，以及`同步（）`刷新数据文件。`InnoDB`不使用`O_DSYNC`直接因为它在许多 Unix 上都存在问题。

    -   `小同步`要么`2`：此选项用于内部性能测试，目前不支持。使用风险自负。

    -   `不同步`要么`3`：此选项用于内部性能测试，目前不支持。使用风险自负。

    -   `O_DIRECT`要么`4`：`InnoDB`用途`O_DIRECT`（要么`方向（）`在 Solaris 上）打开数据文件，并使用`同步（）`刷新数据和日志文件。此选项在某些 GNU/Linux 版本、FreeBSD 和 Solaris 上可用。

    -   `O_DIRECT_NO_FSYNC`：`InnoDB`用途`O_DIRECT`在刷新 I/O 期间，但跳过`同步（）`每次写操作后的系统调用。

        在 MySQL 8.0.14 之前，此设置不适用于 XFS 和 EXT4 等文件系统，这些文件系统需要一个`同步（）`同步文件系统元数据更改的系统调用。如果您不确定您的文件系统是否需要`同步（）`同步文件系统元数据更改的系统调用，使用`O_DIRECT`反而。

        从 MySQL 8.0.14 开始，`同步（）`在创建新文件、增加文件大小和关闭文件后调用，以确保同步文件系统元数据更改。这`同步（）`每次写入操作后仍会跳过系统调用。

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

        在支持的平台上`数据同步（）`系统调用，[`innodb_use_fdatasync`](innodb-parameters.html#sysvar_innodb_use_fdatasync)MySQL 8.0.26 中引入的变量，允许[`innodb_flush_method`](innodb-parameters.html#sysvar_innodb_flush_method)使用的选项`同步（）`使用`数据同步（）`反而。一个`数据同步（）`除非后续数据检索需要，否则系统调用不会刷新对文件元数据的更改，从而提供潜在的性能优势。

        这[`innodb_flush_method`](innodb-parameters.html#sysvar_innodb_flush_method)Windows 系统的选项包括：

    -   `无缓冲`要么`0`：`InnoDB`使用模拟异步 I/O 和非缓冲 I/O。

    -   `普通的`要么`1`：`InnoDB`使用模拟异步 I/O 和缓冲 I/O。

        每个设置如何影响性能取决于硬件配置和工作负载。对您的特定配置进行基准测试，以决定使用哪个设置，或者是否保留默认设置。检查[`Innodb_data_fsyncs`](server-status-variables.html#statvar_Innodb_data_fsyncs)状态变量来查看总数`同步（）`调用（或`数据同步（）`如果调用[`innodb_use_fdatasync`](innodb-parameters.html#sysvar_innodb_use_fdatasync)已启用）每个设置。工作负载中读取和写入操作的混合会影响设置的执行方式。例如，在具有硬件 RAID 控制器和电池供电的写缓存的系统上，`O_DIRECT`可以帮助避免之间的双重缓冲`InnoDB`缓冲池和操作系统文件系统缓存。在某些系统上`InnoDB`数据和日志文件位于 SAN 上，默认值或`O_DSYNC`对于读取繁重的工作负载可能会更快`选择`陈述。始终使用反映您的生产环境的硬件和工作负载测试此参数。有关一般 I/O 调整建议，请参阅[第 8.5.8 节，“优化 InnoDB 磁盘 I/O”](optimizing-innodb-diskio.html).

        如果[`innodb_dedicated_server`](innodb-parameters.html#sysvar_innodb_dedicated_server)启用时，[`innodb_flush_method`](innodb-parameters.html#sysvar_innodb_flush_method)如果未明确定义，则自动配置值。有关详细信息，请参阅[第 15.8.12 节，“为专用 MySQL 服务器启用自动配置”](innodb-dedicated-server.html).

-   [](<>) [`innodb_flush_neighbors`](innodb-parameters.html#sysvar_innodb_flush_neighbors)

    [](<>)[](<>)

    | 命令行格式 | `--innodb-flush-neighbors=#` |
    | ----- | ---------------------------- |
    | 系统变量 | `[innodb_flush_neighbors](innodb-parameters.html#sysvar_innodb_flush_neighbors)` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 枚举 |
    | 默认值 | `0` |
    | 有效值 | `0`<br/><br/>`1`<br/><br/>`2` |

    指定是否[冲洗](glossary.html#glos_flush)一个页面来自`InnoDB` [缓冲池](glossary.html#glos_buffer_pool)也冲洗其他[脏页](glossary.html#glos_dirty_page)在相同的[程度](glossary.html#glos_extent).

    -   设置为 0 禁用[`innodb_flush_neighbors`](innodb-parameters.html#sysvar_innodb_flush_neighbors).相同范围内的脏页不会被刷新。

    -   设置为 1 会刷新相同范围内的连续脏页。

    -   设置为 2 会刷新相同范围内的脏页。

        当表数据存储在传统的[硬盘](glossary.html#glos_hdd)存储设备，冲洗等[相邻页面](glossary.html#glos_neighbor_page)与在不同时间刷新单个页面相比，in one operation 减少了 I/O 开销（主要用于磁盘寻道操作）。对于存储在[固态硬盘](glossary.html#glos_ssd)，寻道时间不是一个重要因素，您可以将此选项设置为 0 以分散写入操作。有关相关信息，请参阅[第 15.8.3.5 节，“配置缓冲池刷新”](innodb-buffer-pool-flushing.html).

-   [](<>) [`innodb_flush_sync`](innodb-parameters.html#sysvar_innodb_flush_sync)

    [](<>)[](<>)

    | 命令行格式 | `--innodb-flush-sync[={OFF|ON}]` |
    | ----- | -------------------------------- |
    | 系统变量 | `[innodb_flush_sync](innodb-parameters.html#sysvar_innodb_flush_sync)` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `在` |

    这[`innodb_flush_sync`](innodb-parameters.html#sysvar_innodb_flush_sync)默认情况下启用的变量会导致[`innodb_io_capacity`](innodb-parameters.html#sysvar_innodb_io_capacity)设置在 I/O 活动突发期间被忽略[检查站](glossary.html#glos_checkpoint).遵守由定义的 I/O 速率[`innodb_io_capacity`](innodb-parameters.html#sysvar_innodb_io_capacity)设置，禁用[`innodb_flush_sync`](innodb-parameters.html#sysvar_innodb_flush_sync).

    有关配置的信息[`innodb_flush_sync`](innodb-parameters.html#sysvar_innodb_flush_sync)变量，见[第 15.8.7 节，“配置 InnoDB I/O 容量”](innodb-configuring-io-capacity.html).

-   [](<>) [`innodb_flushing_avg_loops`](innodb-parameters.html#sysvar_innodb_flushing_avg_loops)

    [](<>)[](<>)

    | 命令行格式 | `--innodb-flushing-avg-loops=#` |
    | ----- | ------------------------------- |
    | 系统变量 | `[innodb_flushing_avg_loops](innodb-parameters.html#sysvar_innodb_flushing_avg_loops)` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `30` |
    | 最小值 | `1` |
    | 最大值 | `1000` |

    迭代次数`InnoDB`保留之前计算的刷新状态快照，控制多快[自适应冲洗](glossary.html#glos_adaptive_flushing)响应变化[工作量](glossary.html#glos_workload).增加值使得比率[冲洗](glossary.html#glos_flush)随着工作量的变化，操作会平稳而逐渐地发生变化。减小该值会使自适应刷新快速适应工作负载的变化，如果工作负载突然增加和减少，这可能会导致刷新活动的峰值。

    有关相关信息，请参阅[第 15.8.3.5 节，“配置缓冲池刷新”](innodb-buffer-pool-flushing.html).

-   [](<>) [`innodb_force_load_corrupted`](innodb-parameters.html#sysvar_innodb_force_load_corrupted)

    [](<>)[](<>)

    | 命令行格式 | `--innodb-force-load-corrupted[={OFF|ON}]` |
    | ----- | ------------------------------------------ |
    | 系统变量 | `[innodb_force_load_corrupted]（innodb-parameters.html#sysvar_innodb_force_load_corrupted）` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `离开` |

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

-   [](<>) [`innodb_force_recovery`](innodb-parameters.html#sysvar_innodb_force_recovery)

    [](<>)[](<>)

    | 命令行格式 | `--innodb-force-recovery=#` |
    | ----- | --------------------------- |
    | 系统变量 | `[innodb_force_recovery](innodb-parameters.html#sysvar_innodb_force_recovery)` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `0` |
    | 最小值 | `0` |
    | 最大值 | `6.` |

    这个[事故恢复](glossary.html#glos_crash_recovery)模式，通常仅在严重故障排除情况下更改。可能的值为0到6。了解这些价值观的含义和关于[`innodb_force_recovery`](innodb-parameters.html#sysvar_innodb_force_recovery)看见[第15.21.3节，“强制InnoDB恢复”](forcing-innodb-recovery.html).

    警告

    仅在紧急情况下将此变量设置为大于0的值，以便启动`InnoDB`扔掉你的桌子。作为安全措施，`InnoDB`阻止[`插入`](insert.html),[`使现代化`](update.html)或[`删去`](delete.html)什么时候开始行动[`innodb_force_recovery`](innodb-parameters.html#sysvar_innodb_force_recovery)大于0。一[`innodb_force_recovery`](innodb-parameters.html#sysvar_innodb_force_recovery)设置4个或更多位置`InnoDB`进入只读模式。

    这些限制可能会导致复制管理命令失败并出现错误，因为复制将复制副本状态日志存储在中`InnoDB`桌子。

-   [](<>) [`innodb_fsync_阈值`](innodb-parameters.html#sysvar_innodb_fsync_threshold)

    [](<>)[](<>)

    | 命令行格式 | `--innodb fsync阈值=#` |
    | ----- | -------------------- |
    | 介绍 | 8.0.13 |
    | 系统变量 | `[innodb_fsync_threshold]（innodb parameters.html#sysvar_innodb_fsync_threshold）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `0` |
    | 最小值 | `0` |
    | 最大值 | `2**64-1` |

    默认情况下`InnoDB`创建一个新的数据文件，例如新的日志文件或表空间文件，该文件在刷新到磁盘之前完全写入操作系统缓存，这可能会导致大量磁盘写入活动同时发生。要强制从操作系统缓存中定期刷新较小的数据，可以使用[`innodb_fsync_阈值`](innodb-parameters.html#sysvar_innodb_fsync_threshold)变量来定义阈值，以字节为单位。当达到字节阈值时，操作系统缓存的内容将刷新到磁盘。默认值0强制执行默认行为，即仅在文件完全写入缓存后才将数据刷新到磁盘。

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

-   [](<>) [`innodb_ft_aux_表`](innodb-parameters.html#sysvar_innodb_ft_aux_table)

    [](<>)[](<>)

    | 系统变量 | `[innodb_ft_aux_table]（innodb parameters.html#sysvar_innodb_ft_aux_table）` |
    | ---- | -------------------------------------------------------------------------- |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 一串 |

    指定文件的限定名称`InnoDB`包含`全文`指数此变量用于诊断目的，只能在运行时设置。例如：

    ```
    SET GLOBAL innodb_ft_aux_table = 'test/t1';
    ```

    将此变量设置为格式中的名称后`*`db\_名称`*/*`表2\\u名称`*`这个`信息模式`桌子[`INNODB_FT_INDEX_表`](information-schema-innodb-ft-index-table-table.html), [`INNODB_FT_INDEX_缓存`](information-schema-innodb-ft-index-cache-table.html), [`INNODB_FT_配置`](information-schema-innodb-ft-config-table.html), [`INNODB_FT_删除`](information-schema-innodb-ft-deleted-table.html)和[`INNODB_FT_被删除`](information-schema-innodb-ft-being-deleted-table.html)显示有关指定表的搜索索引的信息。

    有关更多信息，请参阅[第15.15.4节，“InnoDB信息\_“模式全文索引表”](innodb-information-schema-fulltext_index-tables.html).

-   [](<>) [`innodb_ft_缓存_大小`](innodb-parameters.html#sysvar_innodb_ft_cache_size)

    [](<>)[](<>)

    | 命令行格式 | `--innodb ft缓存大小=#` |
    | ----- | ------------------- |
    | 系统变量 | `[innodb_ft_cache_size]（innodb parameters.html#sysvar_innodb_ft_cache_size）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `8000000` |
    | 最小值 | `1600000` |
    | 最大值 | `80000000` |

    以字节为单位分配给`InnoDB` `全文`搜索索引缓存，在创建`InnoDB` `全文`指数索引插入和更新仅在[`innodb_ft_缓存_大小`](innodb-parameters.html#sysvar_innodb_ft_cache_size)已达到大小限制。[`innodb_ft_缓存_大小`](innodb-parameters.html#sysvar_innodb_ft_cache_size)基于每个表定义缓存大小。要为所有表设置全局限制，请参见[`innodb_ft_缓存总大小`](innodb-parameters.html#sysvar_innodb_ft_total_cache_size).

    有关更多信息，请参阅[InnoDB全文索引缓存](innodb-fulltext-index.html#innodb-fulltext-index-cache).

-   [](<>) [`innodb_ft_启用诊断打印`](innodb-parameters.html#sysvar_innodb_ft_enable_diag_print)

    [](<>)[](<>)

    | 命令行格式 | `--innodb ft启用diag打印[={OFF | ON}]` |
    | ----- | ---------------------------------- |
    | 系统变量 | `[innodb_ft_enable_diag_print]（innodb parameters.html#sysvar_innodb_ft_enable_diag_print）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    是否启用其他全文搜索（FTS）诊断输出。此选项主要用于高级FTS调试，大多数用户不感兴趣。输出将打印到错误日志，并包括以下信息：

    -   FTS索引同步进度（达到FTS缓存限制时）。例如：

        ```
        FTS SYNC for table test, deleted count: 100 size: 10000 bytes
        SYNC words: 100
        ```

    -   FTS优化了进度。例如：

        ```
        FTS start optimize test
        FTS_OPTIMIZE: optimize "mysql"
        FTS_OPTIMIZE: processed "mysql"
        ```

    -   FTS指数建设进展。例如：

        ```
        Number of doc processed: 1000
        ```

    -   对于FTS查询，将打印查询解析树、单词权重、查询处理时间和内存使用情况。例如：

        ```
        FTS Search Processing time: 1 secs: 100 millisec: row(s) 10000
        Full Search Memory: 245666 (bytes),  Row: 10000
        ```

-   [](<>) [`innodb_ft_enable_stopword`](innodb-parameters.html#sysvar_innodb_ft_enable_stopword)

    [](<>)[](<>)

    | 命令行格式 | `--innodb ft启用停止字[={OFF | ON}]` |
    | ----- | ------------------------------- |
    | 系统变量 | `[innodb_ft_enable_stopword]（innodb parameters.html#sysvar_innodb_ft_enable_stopword）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `在…上` |

    指定一组[停止语](glossary.html#glos_stopword)与一个`InnoDB` `全文`创建索引时的索引。如果[`innodb_ft_user_stopword_表`](innodb-parameters.html#sysvar_innodb_ft_user_stopword_table)选项设置后，停止字从该表中提取。否则，如果[`innodb_ft_服务器_stopword_表`](innodb-parameters.html#sysvar_innodb_ft_server_stopword_table)选项设置后，停止字从该表中提取。否则，将使用一组内置的默认停止字。

    有关更多信息，请参阅[第12.10.4节，“全文停止语”](fulltext-stopwords.html).

-   [](<>) [`innodb_ft_max_token_size`](innodb-parameters.html#sysvar_innodb_ft_max_token_size)

    [](<>)[](<>)

    | 命令行格式 | `--innodb ft最大令牌大小=#` |
    | ----- | --------------------- |
    | 系统变量 | `[innodb_ft_max_token_size]（innodb parameters.html#sysvar_innodb_ft_max_token_size）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `84` |
    | 最小值 | `10` |
    | 最大值 | `84` |

    存储在数据库中的单词的最大字符长度`InnoDB` `全文`指数对该值设置限制会减少索引的大小，从而加快查询速度，方法是省略长关键字或非真实单词且不太可能是搜索词的任意字母集合。

    有关更多信息，请参阅[第12.10.6节，“微调MySQL全文搜索”](fulltext-fine-tuning.html).

-   [](<>) [`innodb_ft_min_令牌_大小`](innodb-parameters.html#sysvar_innodb_ft_min_token_size)

    [](<>)[](<>)

    | 命令行格式 | `--innodb ft最小令牌大小=#` |
    | ----- | --------------------- |
    | 系统变量 | `[innodb_ft_min_token_size]（innodb parameters.html#sysvar_innodb_ft_min_token_size）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `3.` |
    | 最小值 | `0` |
    | 最大值 | `16` |

    存储在数据库中的最小字长`InnoDB` `全文`指数通过省略在搜索上下文中不太重要的常用词，例如英语单词“a”和“to”，增加该值可以减小索引的大小，从而加快查询速度。对于使用CJK（中文、日文、韩文）字符集的内容，请指定值1。

    有关更多信息，请参阅[第12.10.6节，“微调MySQL全文搜索”](fulltext-fine-tuning.html).

-   [](<>) [`innodb_ft_num_word_优化`](innodb-parameters.html#sysvar_innodb_ft_num_word_optimize)

    [](<>)[](<>)

    | 命令行格式 | `--innodb ft num字优化=#` |
    | ----- | ---------------------- |
    | 系统变量 | `[innodb_ft_num_word_optimize]（innodb parameters.html#sysvar_innodb_ft_num_word_optimize）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `2000` |
    | 最小值 | `1000` |
    | 最大值 | `10000` |

    每次处理的字数[`优化表格`](optimize-table.html)手术`InnoDB` `全文`指数由于对包含全文搜索索引的表执行大容量插入或更新操作可能需要大量的索引维护才能合并所有更改，因此您可以执行一系列操作[`优化表格`](optimize-table.html)陈述，每一个都在最后一个结束的地方。

    有关更多信息，请参阅[第12.10.6节，“微调MySQL全文搜索”](fulltext-fine-tuning.html).

-   [](<>) [`innodb_ft_结果_缓存_限制`](innodb-parameters.html#sysvar_innodb_ft_result_cache_limit)

    [](<>)[](<>)

    | 命令行格式 | `--innodb ft结果缓存限制=#` |
    | ----- | --------------------- |
    | 系统变量 | `[innodb_ft_result_cache_limit]（innodb parameters.html#sysvar_innodb_ft_result_cache_limit）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `2000000000` |
    | 最小值 | `1000000` |
    | 最大值 | `2**32-1` |

    这个`InnoDB`每个全文搜索查询或每个线程的全文搜索查询结果缓存限制（以字节为单位定义）。中间和最终`InnoDB`全文搜索查询结果在内存中处理。使用[`innodb_ft_结果_缓存_限制`](innodb-parameters.html#sysvar_innodb_ft_result_cache_limit)在全文搜索查询结果缓存上设置大小限制，以避免在出现非常大的缓存时过度消耗内存`InnoDB`全文搜索查询结果（例如，数百万或数亿行）。在处理全文搜索查询时，会根据需要分配内存。如果达到结果缓存大小限制，将返回一个错误，指示查询超出了允许的最大内存。

    最大值[`innodb_ft_结果_缓存_限制`](innodb-parameters.html#sysvar_innodb_ft_result_cache_limit)所有平台类型和钻头尺寸为2\*\*32-1.

-   [](<>) [`innodb_ft_服务器_stopword_表`](innodb-parameters.html#sysvar_innodb_ft_server_stopword_table)

    [](<>)[](<>)

    | 命令行格式 | `--innodb ft server stopword table=db_name/table_name` |
    | ----- | ------------------------------------------------------ |
    | 系统变量 | `[innodb_ft_server_stopword_table]（innodb parameters.html#sysvar_innodb_ft_server_stopword_table）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 一串 |
    | 默认值 | `无效的` |

    此选项用于指定您自己的`InnoDB` `全文`索引所有人的停止词列表`InnoDB`桌子。为特定的目标配置自己的停止字列表`InnoDB`桌子，用[`innodb_ft_user_stopword_表`](innodb-parameters.html#sysvar_innodb_ft_user_stopword_table).

    设置[`innodb_ft_服务器_stopword_表`](innodb-parameters.html#sysvar_innodb_ft_server_stopword_table)指向包含停止字列表的表的名称，格式为`*`db\_名称`*/*`表2\\u名称`*`.

    在配置之前，stopword表必须存在[`innodb_ft_服务器_stopword_表`](innodb-parameters.html#sysvar_innodb_ft_server_stopword_table). [`innodb_ft_enable_stopword`](innodb-parameters.html#sysvar_innodb_ft_enable_stopword)必须启用并且[`innodb_ft_服务器_stopword_表`](innodb-parameters.html#sysvar_innodb_ft_server_stopword_table)必须先配置选项，然后才能创建`全文`指数

    stopword表必须是`InnoDB`表，包含一个`瓦尔查尔`名为`价值`.

    有关更多信息，请参阅[第12.10.4节，“全文停止语”](fulltext-stopwords.html).

-   [](<>) [`innodb_ft_sort_pll_degree`](innodb-parameters.html#sysvar_innodb_ft_sort_pll_degree)

    [](<>)[](<>)

    | 命令行格式 | `--innodb ft分拣pll度=#` |
    | ----- | --------------------- |
    | 系统变量 | `[innodb_ft_sort_pll_degree]（innodb parameters.html#sysvar_innodb_ft_sort_pll_degree）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `2.` |
    | 最小值 | `1.` |
    | 最大值 | `32` |

    并行使用的线程数，用于在`InnoDB` `全文`在构建[搜索索引](glossary.html#glos_search_index).

    有关相关信息，请参阅[第15.6.2.4节，“InnoDB全文索引”](innodb-fulltext-index.html)和[`innodb_排序_缓冲区_大小`](innodb-parameters.html#sysvar_innodb_sort_buffer_size).

-   [](<>) [`innodb_ft_缓存总大小`](innodb-parameters.html#sysvar_innodb_ft_total_cache_size)

    [](<>)[](<>)

    | 命令行格式 | `--innodb ft总缓存大小=#` |
    | ----- | -------------------- |
    | 系统变量 | `[innodb_ft_total_cache_size]（innodb parameters.html#sysvar_innodb_ft_total_cache_size）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `640000000` |
    | 最小值 | `32000000` |
    | 最大值 | `1600000000` |

    以字节为单位分配给服务器的总内存`InnoDB`所有表的全文搜索索引缓存。创建多个表，每个表都有一个`全文`搜索索引可能会占用大量可用内存。[`innodb_ft_缓存总大小`](innodb-parameters.html#sysvar_innodb_ft_total_cache_size)为所有全文搜索索引定义全局内存限制，以帮助避免过度内存消耗。如果索引操作达到全局限制，将触发强制同步。

    有关更多信息，请参阅[InnoDB全文索引缓存](innodb-fulltext-index.html#innodb-fulltext-index-cache).

-   [](<>) [`innodb_ft_user_stopword_表`](innodb-parameters.html#sysvar_innodb_ft_user_stopword_table)

    [](<>)[](<>)

    | 命令行格式 | `--innodb ft user stopword table=db_name/table_name` |
    | ----- | ---------------------------------------------------- |
    | 系统变量 | `[innodb_ft_user_stopword_table]（innodb parameters.html#sysvar_innodb_ft_user_stopword_table）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 一串 |
    | 默认值 | `无效的` |

    此选项用于指定您自己的`InnoDB` `全文`索引特定表上的停止字列表。为所有人配置自己的停止词列表`InnoDB`桌子，用[`innodb_ft_服务器_stopword_表`](innodb-parameters.html#sysvar_innodb_ft_server_stopword_table).

    设置[`innodb_ft_user_stopword_表`](innodb-parameters.html#sysvar_innodb_ft_user_stopword_table)指向包含停止字列表的表的名称，格式为`*`db\_名称`*/*`表2\\u名称`*`.

    在配置之前，stopword表必须存在[`innodb_ft_user_stopword_表`](innodb-parameters.html#sysvar_innodb_ft_user_stopword_table). [`innodb_ft_enable_stopword`](innodb-parameters.html#sysvar_innodb_ft_enable_stopword)必须启用并且[`innodb_ft_user_stopword_表`](innodb-parameters.html#sysvar_innodb_ft_user_stopword_table)必须在创建前进行配置`全文`指数

    stopword表必须是`InnoDB`表，包含一个`瓦尔查尔`名为`价值`.

    有关更多信息，请参阅[第12.10.4节，“全文停止语”](fulltext-stopwords.html).

-   [](<>) [`innodb_空闲_刷新_pct`](innodb-parameters.html#sysvar_innodb_idle_flush_pct)

    [](<>)[](<>)

    | 命令行格式 | `--innodb空闲刷新pct=#` |
    | ----- | ------------------- |
    | 介绍 | 8.0.18 |
    | 系统变量 | `[innodb_idle_flush_pct]（innodb parameters.html#sysvar_innodb_idle_flush_pct）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `100` |
    | 最小值 | `0` |
    | 最大值 | `100` |

    限制页面刷新时`InnoDB`它是空闲的。这个[`innodb_空闲_刷新_pct`](innodb-parameters.html#sysvar_innodb_idle_flush_pct)值是[`innodb_io_容量`](innodb-parameters.html#sysvar_innodb_io_capacity)设置，它定义每秒可供用户使用的I/O操作数`InnoDB`。有关更多信息，请参阅[在空闲期间限制缓冲区刷新](innodb-buffer-pool-flushing.html#innodb-limit-flushing-rate).

-   [](<>) [`innodb_io_容量`](innodb-parameters.html#sysvar_innodb_io_capacity)

    [](<>)[](<>)

    | 命令行格式 | `--innodb io容量=#` |
    | ----- | ----------------- |
    | 系统变量 | `[innodb_io_容量]（innodb parameters.html#sysvar_innodb_io_容量）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `200` |
    | 最小值 | `100` |
    | 最大值（64位平台） | `2**64-1` |
    | 最大值（32位平台） | `2**32-1` |

    这个[`innodb_io_容量`](innodb-parameters.html#sysvar_innodb_io_capacity)变量定义可供用户使用的每秒I/O操作数（IOPS）`InnoDB`背景任务，例如[法拉盛](glossary.html#glos_flush)来自[缓冲池](glossary.html#glos_buffer_pool)以及合并来自[更换缓冲区](glossary.html#glos_change_buffer).

    有关配置[`innodb_io_容量`](innodb-parameters.html#sysvar_innodb_io_capacity)变量，参见[第15.8.7节，“配置InnoDB I/O容量”](innodb-configuring-io-capacity.html).

-   [](<>) [`innodb_io_容量_最大值`](innodb-parameters.html#sysvar_innodb_io_capacity_max)

    [](<>)[](<>)

    | 命令行格式 | `--innodb io最大容量=#` |
    | ----- | ------------------- |
    | 系统变量 | `[innodb_io_capacity_max]（innodb parameters.html#sysvar_innodb_io_capacity_max）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `参见描述` |
    | 最小值 | `100` |
    | 最大值（32位平台） | `2**32-1` |
    | 最大值（Unix，64位平台） | `2**64-1` |
    | 最大值（Windows、64位平台） | `2**32-1` |

    如果冲洗活动落后，`InnoDB`可以更积极地刷新，每秒I/O操作的速率（IOPS）高于[`innodb_io_容量`](innodb-parameters.html#sysvar_innodb_io_capacity)变量这个[`innodb_io_容量_最大值`](innodb-parameters.html#sysvar_innodb_io_capacity_max)变量定义用户执行的最大IOPS数`InnoDB`这种情况下的背景任务。

    有关配置[`innodb_io_容量_最大值`](innodb-parameters.html#sysvar_innodb_io_capacity_max)变量，参见[第15.8.7节，“配置InnoDB I/O容量”](innodb-configuring-io-capacity.html).

-   [](<>) [`innodb_限制_乐观_插入_调试`](innodb-parameters.html#sysvar_innodb_limit_optimistic_insert_debug)

    [](<>)[](<>)

    | 命令行格式 | `--innodb极限乐观插入调试=#` |
    | ----- | -------------------- |
    | 系统变量 | `[innodb_limit_optimize_insert_debug]（innodb parameters.html#sysvar_innodb_limit_optimize_insert_debug）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `0` |
    | 最小值 | `0` |
    | 最大值 | `2**32-1` |

    限制每个文件的记录数[B-树](glossary.html#glos_b_tree)页默认值为0表示不施加任何限制。只有在使用中编译调试支持时，此选项才可用[`用_调试`](source-configuration-options.html#option_cmake_with_debug) **CMake**选项

-   [](<>) [`innodb\u锁定\u等待\u超时`](innodb-parameters.html#sysvar_innodb_lock_wait_timeout)

    [](<>)[](<>)

    | 命令行格式 | `--innodb锁等待超时=#` |
    | ----- | ----------------- |
    | 系统变量 | `[innodb_lock_wait_timeout]（innodb parameters.html#sysvar_innodb_lock_wait_timeout）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `50` |
    | 最小值 | `1.` |
    | 最大值 | `1073741824` |

    以秒为单位的时间长度`InnoDB` [交易](glossary.html#glos_transaction)等待[排锁](glossary.html#glos_row_lock)在放弃之前。默认值为50秒。试图访问被另一行锁定的行的事务`InnoDB`在发出以下错误之前，事务最多要等待这么多秒才能对该行进行写访问：

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

    发生锁定等待超时时，当前语句为[后退](glossary.html#glos_rollback)（不是整个交易）。要回滚整个事务，请使用[`--innodb回滚超时`](innodb-parameters.html#sysvar_innodb_rollback_on_timeout)选项另见[第15.21.5节，“InnoDB错误处理”](innodb-error-handling.html).

    对于高度交互的应用程序或[OLTP](glossary.html#glos_oltp)系统，以快速显示用户反馈，或将更新放入队列以供以后处理。对于长时间运行的后端操作，例如数据仓库中等待其他大型插入或更新操作完成的转换步骤，可以增加该值。

    [`innodb\u锁定\u等待\u超时`](innodb-parameters.html#sysvar_innodb_lock_wait_timeout)适用于`InnoDB`排锁。MySQL[桌锁](glossary.html#glos_table_lock)不会发生在里面`InnoDB`这个超时不适用于等待表锁。

    锁定等待超时值不适用于[僵局](glossary.html#glos_deadlock)什么时候[`innodb_死锁_检测`](innodb-parameters.html#sysvar_innodb_deadlock_detect)已启用（默认），因为`InnoDB`立即检测死锁并回滚其中一个死锁事务。什么时候[`innodb_死锁_检测`](innodb-parameters.html#sysvar_innodb_deadlock_detect)是残疾的，`InnoDB`依靠[`innodb\u锁定\u等待\u超时`](innodb-parameters.html#sysvar_innodb_lock_wait_timeout)用于在死锁发生时进行事务回滚。看见[第15.7.5.2节，“死锁检测”](innodb-deadlock-detection.html).

    [`innodb\u锁定\u等待\u超时`](innodb-parameters.html#sysvar_innodb_lock_wait_timeout)可以在运行时使用`设置全局`或`设置会话`陈述改变`全球的`设置需要足够的权限来设置全局系统变量（请参阅[第5.1.9.1节，“系统变量权限”](system-variable-privileges.html))并影响随后连接的所有客户端的操作。任何客户都可以更改`一场`准备[`innodb\u锁定\u等待\u超时`](innodb-parameters.html#sysvar_innodb_lock_wait_timeout)，只影响该客户。

-   [](<>) [`innodb_日志_缓冲区_大小`](innodb-parameters.html#sysvar_innodb_log_buffer_size)

    [](<>)[](<>)

    | 命令行格式 | `--innodb日志缓冲区大小=#` |
    | ----- | ------------------- |
    | 系统变量 | `[innodb_log_buffer_size]（innodb parameters.html#sysvar_innodb_log_buffer_size）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `16777216` |
    | 最小值 | `1048576` |
    | 最大值 | `4294967295` |

    缓冲区的大小（以字节为单位）`InnoDB`用于向[日志文件](glossary.html#glos_log_file)在磁盘上。默认值为16MB。一个大的[日志缓冲区](glossary.html#glos_log_buffer)启用大型[交易](glossary.html#glos_transaction)无需在事务之前将日志写入磁盘即可运行[犯罪](glossary.html#glos_commit)。因此，如果您有更新、插入或删除多行的事务，则增大日志缓冲区可以节省磁盘I/O。有关信息，请参阅[内存配置](innodb-init-startup-configuration.html#innodb-startup-memory-configuration)和[第8.5.4节，“优化InnoDB重做日志”](optimizing-innodb-logging.html)。有关一般I/O调整建议，请参阅[第8.5.8节，“优化InnoDB磁盘I/O”](optimizing-innodb-diskio.html).

-   [](<>) [`innodb_log_checkpoint_fuzzy_now_`](innodb-parameters.html#sysvar_innodb_log_checkpoint_fuzzy_now)

    [](<>)[](<>)

    | 命令行格式 | `--innodb日志检查点模糊现在[={OFF | ON}]` |
    | ----- | -------------------------------- |
    | 介绍 | 8.0.13 |
    | 系统变量 | `[innodb_log_checkpoint_fuzzy_now]（innodb parameters.html#sysvar_innodb_log_checkpoint_fuzzy_now）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    启用此调试选项以强制`InnoDB`写一个模糊的检查点。只有在使用中编译调试支持时，此选项才可用[`用_调试`](source-configuration-options.html#option_cmake_with_debug) **CMake**选项

-   [](<>) [`innodb_日志_检查点_现在`](innodb-parameters.html#sysvar_innodb_log_checkpoint_now)

    [](<>)[](<>)

    | 命令行格式 | `--innodb日志检查点现在[={OFF | ON}]` |
    | ----- | ------------------------------ |
    | 系统变量 | `[innodb_log_checkpoint_now]（innodb parameters.html#sysvar_innodb_log_checkpoint_now）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    启用此调试选项以强制`InnoDB`写一个检查点。只有在使用中编译调试支持时，此选项才可用[`用_调试`](source-configuration-options.html#option_cmake_with_debug) **CMake**选项

-   [](<>) [`innodb_log_校验和`](innodb-parameters.html#sysvar_innodb_log_checksums)

    [](<>)[](<>)

    | 命令行格式 | `--innodb日志校验和[={OFF | ON}]` |
    | ----- | ---------------------------- |
    | 系统变量 | `[innodb_log_checksums]（innodb parameters.html#sysvar_innodb_log_checksums）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `在…上` |

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

    [`innodb_log_checksums=ON`](innodb-parameters.html#sysvar_innodb_log_checksums)启用`CRC-32C`重做日志页的校验和算法。什么时候[`innodb_log_校验和`](innodb-parameters.html#sysvar_innodb_log_checksums)如果禁用，则忽略重做日志页校验和字段的内容。

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

-   [](<>) [`innodb_日志_压缩页面`](innodb-parameters.html#sysvar_innodb_log_compressed_pages)

    [](<>)[](<>)

    | 命令行格式 | `--innodb日志压缩页面[={OFF | ON}]` |
    | ----- | ----------------------------- |
    | 系统变量 | `[innodb_log_compressed_pages]（innodb parameters.html#sysvar_innodb_log_compressed_pages）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `在…上` |

    指定[重新压缩](glossary.html#glos_compression) [页](glossary.html#glos_page)写信给[重做日志文件](glossary.html#glos_redo_log).当对压缩数据进行更改时，可能会发生重新压缩。

    [`innodb_日志_压缩页面`](innodb-parameters.html#sysvar_innodb_log_compressed_pages)默认情况下启用，以防止在不同版本的`兹利布`在恢复过程中使用压缩算法。如果你确定`兹利布`版本不可更改，您可以禁用[`innodb_日志_压缩页面`](innodb-parameters.html#sysvar_innodb_log_compressed_pages)减少修改压缩数据的工作负载的重做日志生成。

    衡量启用或禁用的效果[`innodb_日志_压缩页面`](innodb-parameters.html#sysvar_innodb_log_compressed_pages)，比较相同工作负载下两种设置的重做日志生成。测量重做日志生成的选项包括观察`日志序列号`（LSN）在`日志`部分[`显示引擎INNODB状态`](show-engine.html)输出或监控[`Innodb_os_log_编写`](server-status-variables.html#statvar_Innodb_os_log_written)写入重做日志文件的字节数的状态。

    有关相关信息，请参阅[第15.9.1.6节，“OLTP工作负载的压缩”](innodb-performance-compression-oltp.html).

-   [](<>) [`innodb_日志_文件_大小`](innodb-parameters.html#sysvar_innodb_log_file_size)

    [](<>)[](<>)

    | 命令行格式 | `--innodb日志文件大小=#` |
    | ----- | ------------------ |
    | 系统变量 | `[innodb_log_file_size]（innodb parameters.html#sysvar_innodb_log_file_size）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `50331648` |
    | 最小值 | `4194304` |
    | 最大值 | `512GB/innodb_日志_组中的文件` |

    每个文件的大小（以字节为单位）[日志文件](glossary.html#glos_log_file)在一个[日志组](glossary.html#glos_log_group).日志文件的组合大小([`innodb_日志_文件_大小`](innodb-parameters.html#sysvar_innodb_log_file_size) \* [`innodb_日志_文件_在_组中`](innodb-parameters.html#sysvar_innodb_log_files_in_group))不能超过略小于512GB的最大值。例如，一对255 GB的日志文件接近极限，但没有超过。默认值为48MB。

    一般来说，日志文件的组合大小应该足够大，以便服务器能够消除工作负载活动的高峰和低谷，这通常意味着有足够的重做日志空间来处理一个多小时的写活动。值越大，缓冲池中所需的检查点刷新活动就越少，从而节省磁盘I/O。日志文件越大，也会导致[事故恢复](glossary.html#glos_crash_recovery)更慢的。

    最低限度[`innodb_日志_文件_大小`](innodb-parameters.html#sysvar_innodb_log_file_size)是4MB。

    有关相关信息，请参阅[重做日志文件配置](innodb-init-startup-configuration.html#innodb-startup-log-file-configuration)。有关一般I/O调整建议，请参阅[第8.5.8节，“优化InnoDB磁盘I/O”](optimizing-innodb-diskio.html).

    如果[`innodb_专用_服务器`](innodb-parameters.html#sysvar_innodb_dedicated_server)如果已启用，则[`innodb_日志_文件_大小`](innodb-parameters.html#sysvar_innodb_log_file_size)如果未明确定义，则会自动配置该值。有关更多信息，请参阅[第15.8.12节，“为专用MySQL服务器启用自动配置”](innodb-dedicated-server.html).

-   [](<>) [`innodb_日志_文件_在_组中`](innodb-parameters.html#sysvar_innodb_log_files_in_group)

    [](<>)[](<>)

    | 命令行格式 | `--组中的innodb日志文件=#` |
    | ----- | ------------------- |
    | 系统变量 | `[innodb_log_files_in_group]（innodb parameters.html#sysvar_innodb_log_files_in_group）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `2.` |
    | 最小值 | `2.` |
    | 最大值 | `100` |

    人数[日志文件](glossary.html#glos_log_file)在[日志组](glossary.html#glos_log_group). `InnoDB`以循环方式写入文件。默认（和推荐）值为2。文件的位置由指定[`innodb_log_group_home_dir`](innodb-parameters.html#sysvar_innodb_log_group_home_dir).日志文件的组合大小([`innodb_日志_文件_大小`](innodb-parameters.html#sysvar_innodb_log_file_size) \* [`innodb_日志_文件_在_组中`](innodb-parameters.html#sysvar_innodb_log_files_in_group))最高可达512GB。

    有关相关信息，请参阅[重做日志文件配置](innodb-init-startup-configuration.html#innodb-startup-log-file-configuration).

    如果[`innodb_专用_服务器`](innodb-parameters.html#sysvar_innodb_dedicated_server)已启用，[`innodb_日志_文件_在_组中`](innodb-parameters.html#sysvar_innodb_log_files_in_group)如果未明确定义，则会自动配置。有关更多信息，请参阅[第15.8.12节，“为专用MySQL服务器启用自动配置”](innodb-dedicated-server.html).

-   [](<>) [`innodb_log_group_home_dir`](innodb-parameters.html#sysvar_innodb_log_group_home_dir)

    [](<>)[](<>)

    | 命令行格式 | `--innodb日志组home dir=dir_name` |
    | ----- | ------------------------------ |
    | 系统变量 | `[innodb_log_group_home_dir]（innodb parameters.html#sysvar_innodb_log_group_home_dir）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 目录名 |

    指向`InnoDB` [重做日志文件](glossary.html#glos_redo_log)文件，其编号由[`innodb_日志_文件_在_组中`](innodb-parameters.html#sysvar_innodb_log_files_in_group)。如果您没有指定任何`InnoDB`日志变量，默认情况下创建两个名为`ib_logfile0`和`ib_日志文件1`在MySQL数据目录中。日志文件大小由[`innodb_日志_文件_大小`](innodb-parameters.html#sysvar_innodb_log_file_size)系统变量。

    有关相关信息，请参阅[重做日志文件配置](innodb-init-startup-configuration.html#innodb-startup-log-file-configuration).

-   [](<>) [`innodb_log_spin_cpu_abs_lwm`](innodb-parameters.html#sysvar_innodb_log_spin_cpu_abs_lwm)

    [](<>)[](<>)

    | 命令行格式 | `--innodb log spin cpu abs lwm=#` |
    | ----- | --------------------------------- |
    | 系统变量 | `[innodb_log_spin_cpu_abs_lwm]（innodb parameters.html#sysvar_innodb_log_spin_cpu_abs_lwm）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `80` |
    | 最小值 | `0` |
    | 最大值 | `4294967295` |

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

    有关相关信息，请参阅[第8.5.4节，“优化InnoDB重做日志”](optimizing-innodb-logging.html).

-   [](<>) [`innodb_log_spin_cpu_pct_hwm`](innodb-parameters.html#sysvar_innodb_log_spin_cpu_pct_hwm)

    [](<>)[](<>)

    | 命令行格式 | `--innodb日志自旋cpu pct hwm=#` |
    | ----- | --------------------------- |
    | 系统变量 | `[innodb_log_spin_cpu_pct_hwm]（innodb parameters.html#sysvar_innodb_log_spin_cpu_pct_hwm）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `50` |
    | 最小值 | `0` |
    | 最大值 | `100` |

    定义用户线程在等待刷新重做时不再旋转的最大CPU使用量。该值表示为所有CPU内核总处理能力的百分比。默认值为50%。例如，两个CPU核的100%使用率是一个有四个CPU核的服务器上CPU处理能力总和的50%。

    这个[`innodb_log_spin_cpu_pct_hwm`](innodb-parameters.html#sysvar_innodb_log_spin_cpu_pct_hwm)变量尊重处理器亲和力。例如，如果一台服务器有48个核心，但[**mysqld**](mysqld.html)进程只固定在四个CPU核上，其他44个CPU核被忽略。

    有关相关信息，请参阅[第8.5.4节，“优化InnoDB重做日志”](optimizing-innodb-logging.html).

-   [](<>) [`innodb_log_wait_for_flush_spin_hwm`](innodb-parameters.html#sysvar_innodb_log_wait_for_flush_spin_hwm)

    [](<>)[](<>)

    | 命令行格式 | `--innodb日志等待刷新自旋hwm=#` |
    | ----- | ----------------------- |
    | 系统变量 | `[innodb_log_wait_for_flush_spin_hwm]（innodb parameters.html#sysvar_innodb_log_wait_for_flush_spin_hwm）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `400` |
    | 最小值 | `0` |
    | 最大值（64位平台） | `2**64-1` |
    | 最大值（32位平台） | `2**32-1` |

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

    有关相关信息，请参阅[第8.5.4节，“优化InnoDB重做日志”](optimizing-innodb-logging.html).

-   [](<>) [`innodb_log_write_ahead_size`](innodb-parameters.html#sysvar_innodb_log_write_ahead_size)

    [](<>)[](<>)

    | 命令行格式 | `--innodb日志预写大小=#` |
    | ----- | ------------------ |
    | 系统变量 | `[innodb_log_write_ahead_size]（innodb parameters.html#sysvar_innodb_log_write_ahead_size）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `8192` |
    | 最小值 | `512（日志文件块大小）` |
    | 最大值 | `等于innodb_页面大小` |

    定义重做日志的预写块大小（字节）。为避免“边读边写”，请设置[`innodb_log_write_ahead_size`](innodb-parameters.html#sysvar_innodb_log_write_ahead_size)以匹配操作系统或文件系统缓存块大小。默认设置为8192字节。由于重做日志的预写块大小与操作系统或文件系统缓存块大小不匹配，重做日志块未完全缓存到操作系统或文件系统时，会发生读写。

    的有效值[`innodb_log_write_ahead_size`](innodb-parameters.html#sysvar_innodb_log_write_ahead_size)是数字的倍数`InnoDB`日志文件块大小（2）<sup>n</sup>).最小值为`InnoDB`日志文件块大小（512）。当指定最小值时，不会发生提前写入。最大值等于[`innodb_页面大小`](innodb-parameters.html#sysvar_innodb_page_size)价值如果为[`innodb_log_write_ahead_size`](innodb-parameters.html#sysvar_innodb_log_write_ahead_size)这比这个数字要大[`innodb_页面大小`](innodb-parameters.html#sysvar_innodb_page_size)价值观[`innodb_log_write_ahead_size`](innodb-parameters.html#sysvar_innodb_log_write_ahead_size)设置被截断为[`innodb_页面大小`](innodb-parameters.html#sysvar_innodb_page_size)价值

    设定[`innodb_log_write_ahead_size`](innodb-parameters.html#sysvar_innodb_log_write_ahead_size)与操作系统或文件系统缓存块大小相关的值过低会导致“写时读”。将该值设置得过高可能会对`同步`由于同时写入多个块，因此日志文件写入的性能提高。

    有关相关信息，请参阅[第8.5.4节，“优化InnoDB重做日志”](optimizing-innodb-logging.html).

-   [](<>) [`innodb_log_writer_线程`](innodb-parameters.html#sysvar_innodb_log_writer_threads)

    [](<>)[](<>)

    | 命令行格式 | `--innodb日志编写器线程[={OFF | ON}]` |
    | ----- | ------------------------------ |
    | 介绍 | 8.0.22 |
    | 系统变量 | `[innodb_log_writer_threads]（innodb parameters.html#sysvar_innodb_log_writer_threads）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `在…上` |

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

    有关更多信息，请参阅[第8.5.4节，“优化InnoDB重做日志”](optimizing-innodb-logging.html).

-   [](<>) [`innodb_lru_扫描_深度`](innodb-parameters.html#sysvar_innodb_lru_scan_depth)

    [](<>)[](<>)

    | 命令行格式 | `--innodb lru扫描深度=#` |
    | ----- | -------------------- |
    | 系统变量 | `[innodb_lru_scan_depth]（innodb parameters.html#sysvar_innodb_lru_scan_depth）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `1024` |
    | 最小值 | `100` |
    | 最大值（64位平台） | `2**64-1` |
    | 最大值（32位平台） | `2**32-1` |

    一个影响算法和启发式的参数[脸红](glossary.html#glos_flush)医院的手术`InnoDB` [缓冲池](glossary.html#glos_buffer_pool)。主要是针对I/O密集型工作负载的性能专家感兴趣的。它指定每个缓冲池实例在缓冲池LRU页面下方的多远处列出页面清理器线程扫描要查找的内容[脏页](glossary.html#glos_dirty_page)冲水。这是每秒执行一次的后台操作。

    小于默认值的设置通常适用于大多数工作负载。远高于必要值的值可能会影响性能。如果在典型工作负载下有空闲I/O容量，只考虑增加值。相反，如果写密集型工作负载使I/O容量饱和，请降低该值，尤其是在缓冲池较大的情况下。

    调谐时[`innodb_lru_扫描_深度`](innodb-parameters.html#sysvar_innodb_lru_scan_depth)，从低值开始，向上配置设置，目标是很少看到零空闲页面。此外，考虑调整[`innodb_lru_扫描_深度`](innodb-parameters.html#sysvar_innodb_lru_scan_depth)更改缓冲池实例数时，因为[`innodb_lru_扫描_深度`](innodb-parameters.html#sysvar_innodb_lru_scan_depth) \* [`innodb_缓冲区_池_实例`](innodb-parameters.html#sysvar_innodb_buffer_pool_instances)定义页面清理器线程每秒执行的工作量。

    有关相关信息，请参阅[第15.8.3.5节，“配置缓冲池刷新”](innodb-buffer-pool-flushing.html)。有关一般I/O调整建议，请参阅[第8.5.8节，“优化InnoDB磁盘I/O”](optimizing-innodb-diskio.html).

-   [](<>) [`innodb_max_dirty_pages_pct`](innodb-parameters.html#sysvar_innodb_max_dirty_pages_pct)

    [](<>)[](<>)

    | 命令行格式 | `--innodb最大脏页pct=#` |
    | ----- | ------------------- |
    | 系统变量 | `[innodb_max_dirty_pages_pct]（innodb parameters.html#sysvar_innodb_max_dirty_pages_pct）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 数字的 |
    | 默认值 | `90` |
    | 最小值 | `0` |
    | 最大值 | `99.99` |

    `InnoDB`试图[脸红](glossary.html#glos_flush)数据来自[缓冲池](glossary.html#glos_buffer_pool)所以[脏页](glossary.html#glos_dirty_page)不超过此值。

    这个[`innodb_max_dirty_pages_pct`](innodb-parameters.html#sysvar_innodb_max_dirty_pages_pct)设定冲洗活动的目标。它不会影响冲洗速度。有关管理冲洗速率的信息，请参阅[第15.8.3.5节，“配置缓冲池刷新”](innodb-buffer-pool-flushing.html).

    有关相关信息，请参阅[第15.8.3.5节，“配置缓冲池刷新”](innodb-buffer-pool-flushing.html)。有关一般I/O调整建议，请参阅[第8.5.8节，“优化InnoDB磁盘I/O”](optimizing-innodb-diskio.html).

-   [](<>) [`innodb_max_dirty_pages_pct_lwm`](innodb-parameters.html#sysvar_innodb_max_dirty_pages_pct_lwm)

    [](<>)[](<>)

    | 命令行格式 | `--innodb max脏页pct lwm=#` |
    | ----- | ------------------------- |
    | 系统变量 | `[innodb_max_dirty_pages_pct_lwm]（innodb parameters.html#sysvar_innodb_max_dirty_pages_pct_lwm）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 数字的 |
    | 默认值 | `10` |
    | 最小值 | `0` |
    | 最大值 | `99.99` |

    定义一个低水位线，表示[脏页](glossary.html#glos_dirty_page)启用预刷新以控制脏页比率。值为0将完全禁用预刷新行为。配置的值应始终低于[`innodb_max_dirty_pages_pct`](innodb-parameters.html#sysvar_innodb_max_dirty_pages_pct)价值有关更多信息，请参阅[第15.8.3.5节，“配置缓冲池刷新”](innodb-buffer-pool-flushing.html).

-   [](<>) [`innodb_max_purge_lag`](innodb-parameters.html#sysvar_innodb_max_purge_lag)

    [](<>)[](<>)

    | 命令行格式 | `--innodb最大清除滞后=#` |
    | ----- | ------------------ |
    | 系统变量 | `[innodb_max_purge_lag]（innodb parameters.html#sysvar_innodb_max_purge_lag）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `0` |
    | 最小值 | `0` |
    | 最大值 | `4294967295` |

    定义所需的最大净化滞后时间。如果超过该值，将对其施加延迟[`插入`](insert.html), [`使现代化`](update.html)和[`删去`](delete.html)为净化留出时间的操作。默认值为0，这意味着没有最大清除滞后和延迟。

    有关更多信息，请参阅[第15.8.9节“净化配置”](innodb-purge-configuration.html).

-   [](<>) [`innodb_max_purge_lag_delay`](innodb-parameters.html#sysvar_innodb_max_purge_lag_delay)

    [](<>)[](<>)

    | 命令行格式 | `--innodb最大清除滞后延迟=#` |
    | ----- | -------------------- |
    | 系统变量 | `[innodb_max_purge_lag_delay]（innodb parameters.html#sysvar_innodb_max_purge_lag_delay）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `0` |
    | 最小值 | `0` |
    | 最大值 | `10000000` |

    指定当[`innodb_max_purge_lag`](innodb-parameters.html#sysvar_innodb_max_purge_lag)超过阈值。指定的[`innodb_max_purge_lag_delay`](innodb-parameters.html#sysvar_innodb_max_purge_lag_delay)值是由[`innodb_max_purge_lag`](innodb-parameters.html#sysvar_innodb_max_purge_lag)公式

    有关更多信息，请参阅[第15.8.9节“净化配置”](innodb-purge-configuration.html).

-   [](<>) [`innodb_max_undo_log_size`](innodb-parameters.html#sysvar_innodb_max_undo_log_size)

    [](<>)[](<>)

    | 命令行格式 | `--innodb最大撤消日志大小=#` |
    | ----- | -------------------- |
    | 系统变量 | `[innodb_max_undo_log_size]（innodb parameters.html#sysvar_innodb_max_undo_log_size）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `1073741824` |
    | 最小值 | `10485760` |
    | 最大值 | `2**64-1` |

    定义撤消表空间的阈值大小。如果撤消表空间超过阈值，则可以在以下情况下将其标记为截断：[`innodb_undo_log_truncate`](innodb-parameters.html#sysvar_innodb_undo_log_truncate)已启用。默认值为1073741824字节（1024 MiB）。

    有关更多信息，请参阅[截断撤消表空间](innodb-undo-tablespaces.html#truncate-undo-tablespace).

-   [](<>) [`innodb_merge_threshold_set_all_debug`](innodb-parameters.html#sysvar_innodb_merge_threshold_set_all_debug)

    [](<>)[](<>)

    | 命令行格式 | `--innodb合并阈值设置所有调试=#` |
    | ----- | ---------------------- |
    | 系统变量 | `[innodb_merge_threshold_set_all_debug]（innodb parameters.html#sysvar_innodb_merge_threshold_set_all_debug）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `50` |
    | 最小值 | `1.` |
    | 最大值 | `50` |

    为覆盖当前页面的索引页面定义页面完整百分比值`合并阈值`设置当前在字典缓存中的所有索引。只有在使用中编译调试支持时，此选项才可用[`用_调试`](source-configuration-options.html#option_cmake_with_debug) **CMake**选项有关相关信息，请参阅[第15.8.11节，“为索引页配置合并阈值”](index-page-merge-threshold.html).

-   [](<>) [`innodb_监视器_禁用`](innodb-parameters.html#sysvar_innodb_monitor_disable)

    [](<>)[](<>)

    | 命令行格式 | `--innodb监视器禁用={counter | module | pattern | all}` |
    | ----- | -------------------------------------------------- |
    | 系统变量 | `[innodb_monitor_disable]（innodb parameters.html#sysvar_innodb_monitor_disable）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 一串 |

    禁用`InnoDB` [度量计数器](glossary.html#glos_metrics_counter).计数器数据可以使用[`信息模式。INNODB_度量`](information-schema-innodb-metrics-table.html)桌子有关用法信息，请参阅[第15.15.6节，“InnoDB信息\_模式度量表“](innodb-information-schema-metrics-table.html).

    [`innodb_监视器_禁用class='latch'`](innodb-parameters.html#sysvar_innodb_monitor_disable)禁用的统计信息收集[`显示引擎INNODB互斥`](show-engine.html)。有关更多信息，请参阅[第13.7.7.15节，“显示发动机状态”](show-engine.html).

-   [](<>) [`innodb_监视器_启用`](innodb-parameters.html#sysvar_innodb_monitor_enable)

    [](<>)[](<>)

    | 命令行格式 | `--innodb监视器启用={counter | module | pattern | all}` |
    | ----- | -------------------------------------------------- |
    | 系统变量 | `[innodb_monitor_enable]（innodb parameters.html#sysvar_innodb_monitor_enable）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 一串 |

    使能够`InnoDB` [度量计数器](glossary.html#glos_metrics_counter).计数器数据可以使用[`信息模式。INNODB_度量`](information-schema-innodb-metrics-table.html)桌子有关用法信息，请参阅[第15.15.6节，“InnoDB信息\_模式度量表“](innodb-information-schema-metrics-table.html).

    [`innodb_监视器_enable='latch'`](innodb-parameters.html#sysvar_innodb_monitor_enable)启用的统计信息收集[`显示引擎INNODB互斥`](show-engine.html)。有关更多信息，请参阅[第13.7.7.15节，“显示发动机状态”](show-engine.html).

-   [](<>) [`innodb_监视器_重置`](innodb-parameters.html#sysvar_innodb_monitor_reset)

    [](<>)[](<>)

    | 命令行格式 | `--innodb监视器重置={counter | module | pattern | all}` |
    | ----- | -------------------------------------------------- |
    | 系统变量 | `[innodb_monitor_reset]（innodb parameters.html#sysvar_innodb_monitor_reset）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 列举 |
    | 默认值 | `无效的` |
    | 有效值 | `柜台`<br/><br/>`单元`<br/><br/>`图案`<br/><br/>`全部的` |

    重置的计数值`InnoDB` [度量计数器](glossary.html#glos_metrics_counter)归零。计数器数据可以使用[`信息模式。INNODB_度量`](information-schema-innodb-metrics-table.html)桌子有关用法信息，请参阅[第15.15.6节，“InnoDB信息\_模式度量表“](innodb-information-schema-metrics-table.html).

    [`innodb_监视器_reset='latch'`](innodb-parameters.html#sysvar_innodb_monitor_reset)重置由报告的统计信息[`显示引擎INNODB互斥`](show-engine.html)。有关更多信息，请参阅[第13.7.7.15节，“显示发动机状态”](show-engine.html).

-   [](<>) [`innodb_监视器_重置_全部`](innodb-parameters.html#sysvar_innodb_monitor_reset_all)

    [](<>)[](<>)

    | 命令行格式 | `--innodb monitor reset all={counter | module | pattern | all}` |
    | ----- | --------------------------------------------------------------- |
    | 系统变量 | `[innodb_monitor_reset_all]（innodb parameters.html#sysvar_innodb_monitor_reset_all）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 列举 |
    | 默认值 | `无效的` |
    | 有效值 | `柜台`<br/><br/>`单元`<br/><br/>`图案`<br/><br/>`全部的` |

    重置的所有值（最小值、最大值等）`InnoDB` [度量计数器](glossary.html#glos_metrics_counter).计数器数据可以使用[`信息模式。INNODB_度量`](information-schema-innodb-metrics-table.html)桌子有关用法信息，请参阅[第15.15.6节，“InnoDB信息\_模式度量表“](innodb-information-schema-metrics-table.html).

-   [](<>) [`innodb_numa_交错`](innodb-parameters.html#sysvar_innodb_numa_interleave)

    [](<>)[](<>)

    | 命令行格式 | `--innodb numa交织[={OFF | ON}]` |
    | ----- | ------------------------------ |
    | 系统变量 | `[innodb_numa_interleave]（innodb parameters.html#sysvar_innodb_numa_interleave）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    启用NUMA交错内存策略以分配`InnoDB`缓冲池。什么时候[`innodb_numa_交错`](innodb-parameters.html#sysvar_innodb_numa_interleave)启用时，NUMA内存策略设置为`MPOL_交织`对于[**mysqld**](mysqld.html)过程之后`InnoDB`分配缓冲池时，NUMA内存策略设置回`MPOL_默认值`.为了[`innodb_numa_交错`](innodb-parameters.html#sysvar_innodb_numa_interleave)选项可用，MySQL必须在支持NUMA的Linux系统上编译。

    **CMake**设置默认值[`和努玛`](source-configuration-options.html#option_cmake_with_numa)基于当前平台是否具有`努马`支持有关更多信息，请参阅[第2.9.7节，“MySQL源配置选项”](source-configuration-options.html).

-   [](<>) [`innodb_old_blocks_pct`](innodb-parameters.html#sysvar_innodb_old_blocks_pct)

    [](<>)[](<>)

    | 命令行格式 | `--innodb old blocks pct=#` |
    | ----- | --------------------------- |
    | 系统变量 | `[innodb_old_blocks_pct]（innodb parameters.html#sysvar_innodb_old_blocks_pct）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `37` |
    | 最小值 | `5.` |
    | 最大值 | `95` |

    指定所需时间的近似百分比`InnoDB` [缓冲池](glossary.html#glos_buffer_pool)用于旧街区[子列表](glossary.html#glos_sublist).数值范围为5到95。默认值为37（即池的3/8）。经常与…结合使用[`innodb_old_阻塞时间`](innodb-parameters.html#sysvar_innodb_old_blocks_time).

    有关更多信息，请参阅[第15.8.3.3节，“防止缓冲池扫描”](innodb-performance-midpoint_insertion.html)。有关缓冲池管理的信息，请参阅[LRU](glossary.html#glos_lru)算法，以及[驱逐](glossary.html#glos_eviction)政策，参见[第15.5.1节“缓冲池”](innodb-buffer-pool.html).

-   [](<>) [`innodb_old_阻塞时间`](innodb-parameters.html#sysvar_innodb_old_blocks_time)

    [](<>)[](<>)

    | 命令行格式 | `--innodb旧版会阻塞时间=#` |
    | ----- | ------------------- |
    | 系统变量 | `[innodb_old_blocks_time]（innodb parameters.html#sysvar_innodb_old_blocks_time）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `1000` |
    | 最小值 | `0` |
    | 最大值 | `2**32-1` |

    非零值可防止[缓冲池](glossary.html#glos_buffer_pool)由只在短时间内被引用的数据填充，例如在[全表扫描](glossary.html#glos_full_table_scan)。增加此值可提供更多保护，以防止完整表扫描干扰缓冲池中缓存的数据。

    指定插入到旧图形中的块的时间（以毫秒为单位）[子列表](glossary.html#glos_sublist)在第一次访问后必须留在那里，然后才能移动到新的子列表。如果该值为0，则插入到旧子列表中的块在第一次访问时会立即移动到新子列表，无论插入后多久进行访问。如果该值大于0，则块将保留在旧的子列表中，直到在第一次访问后至少若干毫秒发生访问。例如，值1000会导致块在第一次访问后在旧子列表中停留1秒，然后才有资格移动到新子列表。

    默认值为1000。

    此变量通常与[`innodb_old_blocks_pct`](innodb-parameters.html#sysvar_innodb_old_blocks_pct)。有关更多信息，请参阅[第15.8.3.3节，“防止缓冲池扫描”](innodb-performance-midpoint_insertion.html)。有关缓冲池管理的信息，请参阅[LRU](glossary.html#glos_lru)算法，以及[驱逐](glossary.html#glos_eviction)政策，参见[第15.5.1节“缓冲池”](innodb-buffer-pool.html).

-   [](<>) [`innodb_online_alter_log_max_size`](innodb-parameters.html#sysvar_innodb_online_alter_log_max_size)

    [](<>)[](<>)

    | 命令行格式 | `--innodb online更改日志最大大小=#` |
    | ----- | --------------------------- |
    | 系统变量 | `[innodb_online_alter_log_max_size]（innodb parameters.html#sysvar_innodb_online_alter_log_max_size）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `134217728` |
    | 最小值 | `65536` |
    | 最大值 | `2**64-1` |

    指定进程中使用的临时日志文件的大小上限（以字节为单位）[在线DDL](glossary.html#glos_online_ddl)手术`InnoDB`桌子。对于创建的每个索引或修改的表，都有一个这样的日志文件。此日志文件存储DDL操作期间在表中插入、更新或删除的数据。当需要时，临时日志文件会根据的值进行扩展[`innodb_排序_缓冲区_大小`](innodb-parameters.html#sysvar_innodb_sort_buffer_size)，最高可达[`innodb_online_alter_log_max_size`](innodb-parameters.html#sysvar_innodb_online_alter_log_max_size)。如果临时日志文件超过了大小上限，则[`改变桌子`](alter-table.html)操作失败，所有未提交的并发DML操作将回滚。因此，此选项的较大值允许在联机DDL操作期间发生更多DML，但也会延长DDL操作结束时表被锁定以应用日志中的数据的时间段。

-   [](<>) [`innodb_打开_文件`](innodb-parameters.html#sysvar_innodb_open_files)

    [](<>)[](<>)[](<>)

    | 命令行格式 | `--innodb打开文件=#` |
    | ----- | ---------------- |
    | 系统变量 | `[innodb_open_files]（innodb parameters.html#sysvar_innodb_open_files）` |
    | 范围 | 全球的 |
    | 动态的(≥ 8.0.28) | 对 |
    | 动态的(≤ 8.0.27) | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `-1`（表示自动调整大小；不指定此文字值） |
    | 最小值 | `10` |
    | 最大值 | `2147483647` |

    指定要删除的最大文件数`InnoDB`可以一次打开。最小值为10。如果[`innodb_文件_每个_表`](innodb-parameters.html#sysvar_innodb_file_per_table)已禁用，默认值为300；否则，默认值为300或[`表_打开_缓存`](server-system-variables.html#sysvar_table_open_cache)设置，以较高者为准。

    从MySQL 8.0.28开始[`innodb_打开_文件`](innodb-parameters.html#sysvar_innodb_open_files)可以在运行时使用`选择innodb\u设置\u打开\u文件\u限制(*`N`*)`声明，在哪里*`N`*是理想的吗[`innodb_打开_文件`](innodb-parameters.html#sysvar_innodb_open_files)限度例如：

    ```
    mysql> SELECT innodb_set_open_files_limit(1000);
    ```

    该语句执行设置新限制的存储过程。如果程序成功，则返回新设置的限制值；否则，将返回失败消息。

    这是不允许设置的[`innodb_打开_文件`](innodb-parameters.html#sysvar_innodb_open_files)使用[`设置`](set-variable.html)陈述设置[`innodb_打开_文件`](innodb-parameters.html#sysvar_innodb_open_files)在运行时，使用`选择innodb\u设置\u打开\u文件\u限制(*`N`*)`上述声明。

    背景[`innodb_open_files=默认值`](innodb-parameters.html#sysvar_innodb_open_files)不支持。只允许使用整数值。

    从MySQL 8.0.28开始，为了防止非LRU管理的文件占用整个[`innodb_打开_文件`](innodb-parameters.html#sysvar_innodb_open_files)限制，非LRU管理的文件限制为[`innodb_打开_文件`](innodb-parameters.html#sysvar_innodb_open_files)限制，即保留10%的[`innodb_打开_文件`](innodb-parameters.html#sysvar_innodb_open_files)限制LRU管理的文件。

    临时表空间文件未计入[`innodb_打开_文件`](innodb-parameters.html#sysvar_innodb_open_files)从MySQL 8.0.24限制到MySQL 8.0.27。

-   [](<>) [`innodb_优化_全文_`](innodb-parameters.html#sysvar_innodb_optimize_fulltext_only)

    [](<>)[](<>)

    | 命令行格式 | `--innodb仅优化全文[={OFF | ON}]` |
    | ----- | ---------------------------- |
    | 系统变量 | `[innodb_optimize_fulltext_only]（innodb parameters.html#sysvar_innodb_optimize_fulltext_only）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    改变方式[`优化表格`](optimize-table.html)手术`InnoDB`桌子。计划在维护操作期间临时启用`InnoDB`有`全文`索引。

    默认情况下，[`优化表格`](optimize-table.html)重新组织数据库中的数据[聚集索引](glossary.html#glos_clustered_index)桌子的另一边。启用此选项后，[`优化表格`](optimize-table.html)跳过表数据的重组，而是处理新添加、删除和更新的令牌数据`InnoDB` `全文`索引。有关更多信息，请参阅[优化InnoDB全文索引](fulltext-fine-tuning.html#fulltext-optimize).

-   [](<>) [`innodb_页面_清洁器`](innodb-parameters.html#sysvar_innodb_page_cleaners)

    [](<>)[](<>)

    | 命令行格式 | `--innodb页面清理器=#` |
    | ----- | ----------------- |
    | 系统变量 | `[innodb_page_cleaners]（innodb parameters.html#sysvar_innodb_page_cleaners）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `4.` |
    | 最小值 | `1.` |
    | 最大值 | `64` |

    从缓冲池实例中刷新脏页的页面清理器线程数。页面清理器线程执行刷新列表和LRU刷新。当存在多个页面清理器线程时，会将每个缓冲池实例的缓冲池刷新任务分派给空闲的页面清理器线程。这个[`innodb_页面_清洁器`](innodb-parameters.html#sysvar_innodb_page_cleaners)默认值为4。如果页面清理器线程数超过缓冲池实例数，[`innodb_页面_清洁器`](innodb-parameters.html#sysvar_innodb_page_cleaners)将自动设置为与相同的值[`innodb_缓冲区_池_实例`](innodb-parameters.html#sysvar_innodb_buffer_pool_instances).

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

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

    这个`setpriority（）`系统调用在Linux平台上使用，该平台支持系统调用，并且[**mysqld**](mysqld.html)执行用户有权给出`页面清洁器`线程优先于其他MySQL和`InnoDB`帮助页面刷新跟上当前工作负载的线程。`setpriority（）`这表明支持`InnoDB`启动消息：

    ```
    [Note] InnoDB: If the mysqld execution user is authorized, page cleaner
    thread priority can be changed. See the man page of setpriority().
    ```

    对于服务器启动和关闭不由systemd管理的系统，[**mysqld**](mysqld.html)可以在中配置执行用户授权`/etc/安全/限制。形态`.例如，如果[**mysqld**](mysqld.html)是在`mysql`用户，您可以授权`mysql`通过将这些行添加到`/etc/安全/限制。形态`:

    ```
    mysql              hard    nice       -20
    mysql              soft    nice       -20
    ```

    对于systemd管理的系统，可以通过指定`LimitNICE=-20`在本地化的systemd配置文件中。例如，创建一个名为`推翻形态`在里面`/etc/systemd/system/mysqld。服务d/超控。形态`并添加以下条目：

    ```
    [Service]
    LimitNICE=-20
    ```

    在创造或改变之后`推翻形态`，重新加载systemd配置，然后告诉systemd重新启动MySQL服务：

    ```
    systemctl daemon-reload
    systemctl restart mysqld  # RPM platforms
    systemctl restart mysql   # Debian platforms
    ```

    有关使用本地化systemd配置文件的更多信息，请参阅[为MySQL配置systemd](using-systemd.html#systemd-mysql-configuration).

    在授权[**mysqld**](mysqld.html)执行用户，使用**猫**命令来验证配置的`美好的`限制[**mysqld**](mysqld.html)过程：

    ```
    $> cat /proc/mysqld_pid/limits | grep nice
    Max nice priority         18446744073709551596 18446744073709551596
    ```

-   [](<>) [`innodb_页面大小`](innodb-parameters.html#sysvar_innodb_page_size)

    [](<>)[](<>)

    | 命令行格式 | `--innodb页面大小=#` |
    | ----- | ---------------- |
    | 系统变量 | `[innodb_page_size]（innodb parameters.html#sysvar_innodb_page_size）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 列举 |
    | 默认值 | `16384` |
    | 有效值 | `4096`<br/><br/>`8192`<br/><br/>`16384`<br/><br/>`32768`<br/><br/>`65536` |

    指定[页面大小](glossary.html#glos_page_size)对于`InnoDB` [表空间](glossary.html#glos_tablespace).值可以以字节或千字节为单位指定。例如，16KB的页面大小值可以指定为16384、16KB或16k。

    [`innodb_页面大小`](innodb-parameters.html#sysvar_innodb_page_size)只能在初始化MySQL实例之前进行配置，之后不能更改。如果未指定值，则使用默认页面大小初始化实例。看见[第15.8.1节，“InnoDB启动配置”](innodb-init-startup-configuration.html).

    对于32KB和64KB页面大小，最大行长度约为16000字节。`行_格式=压缩`在以下情况下不受支持：[`innodb_页面大小`](innodb-parameters.html#sysvar_innodb_page_size)设置为32KB或64KB。对于[`innodb_页面大小=32KB`](innodb-parameters.html#sysvar_innodb_page_size)，数据块大小为2MB。对于[`innodb_页面大小=64KB`](innodb-parameters.html#sysvar_innodb_page_size)，数据块大小为4MB。[`innodb_日志_缓冲区_大小`](innodb-parameters.html#sysvar_innodb_log_buffer_size)当使用32KB或64KB页面大小时，应至少设置为16M（默认值）。

    默认的16KB或更大的页面大小适用于各种应用程序[工作量](glossary.html#glos_workload)，尤其是涉及表扫描的查询和涉及批量更新的DML操作。较小的页面大小可能会更有效率[OLTP](glossary.html#glos_oltp)涉及许多小写入的工作负载，当单个页面包含多行时，争用可能会成为一个问题。较小的页面也可能有助于[固态硬盘](glossary.html#glos_ssd)存储设备，通常使用较小的块大小。保持`InnoDB`接近存储设备块大小的页面大小将重写到磁盘的未更改数据量降至最低。

    第一个系统表空间数据文件的最小文件大小(`ibdata1`)根据具体情况而有所不同[`innodb_页面大小`](innodb-parameters.html#sysvar_innodb_page_size)价值看到了吗[`innodb_数据_文件_路径`](innodb-parameters.html#sysvar_innodb_data_file_path)选项说明以获取更多信息。

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

    有关一般I/O调整建议，请参阅[第8.5.8节，“优化InnoDB磁盘I/O”](optimizing-innodb-diskio.html).

-   [](<>) [`innodb_并行_读取_线程`](innodb-parameters.html#sysvar_innodb_parallel_read_threads)

    [](<>)[](<>)

    | 命令行格式 | `--innodb并行读取线程=#` |
    | ----- | ------------------ |
    | 介绍 | 8.0.14 |
    | 系统变量 | `[innodb_parallel_read_threads]（innodb parameters.html#sysvar_innodb_parallel_read_thread）` |
    | 范围 | 一场 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `4.` |
    | 最小值 | `1.` |
    | 最大值 | `256` |

    定义可用于并行聚集索引读取的线程数。从MySQL 8.0.17开始，支持分区并行扫描。并行读线程可以提高效率[`检查表`](check-table.html)表演`InnoDB`在搜索过程中读取聚集索引两次[`检查表`](check-table.html)活动第二次读取可以并行执行。此功能不适用于辅助索引扫描。这个[`innodb_并行_读取_线程`](innodb-parameters.html#sysvar_innodb_parallel_read_threads)会话变量必须设置为大于1的值，才能进行并行聚集索引读取。用于执行并行聚集索引读取的实际线程数由[`innodb_并行_读取_线程`](innodb-parameters.html#sysvar_innodb_parallel_read_threads)设置或要扫描的索引子树数，以较小者为准。扫描期间读入缓冲池的页面保留在缓冲池LRU列表的末尾，以便在需要空闲缓冲池页面时快速丢弃。

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

-   [](<>) [`innodb_print_all_死锁`](innodb-parameters.html#sysvar_innodb_print_all_deadlocks)

    [](<>)[](<>)

    | 命令行格式 | `--innodb打印所有死锁[={OFF | ON}]` |
    | ----- | ----------------------------- |
    | 系统变量 | `[innodb_print_all_deadlocks]（innodb parameters.html#sysvar_innodb_print_all_deadlocks）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    [](<>)

    启用此选项后，将显示有关所有[僵局](glossary.html#glos_deadlock)在里面`InnoDB`用户交易记录在`mysqld` [错误日志](error-log.html)。否则，使用`显示引擎INNODB状态`命令偶尔`InnoDB`僵局不一定是个问题，因为`InnoDB`立即检测情况并自动回滚其中一个事务。如果应用程序没有适当的错误处理逻辑来检测回滚并重试其操作，则可以使用此选项来排除死锁发生的原因。大量的死锁可能意味着需要重组出现问题的交易[DML](glossary.html#glos_dml)或`选择更新`语句，以便每个事务以相同的顺序访问表，从而避免死锁情况。

    有关相关信息，请参阅[第15.7.5节，“InnoDB中的死锁”](innodb-deadlocks.html).

-   [](<>) [`innodb_打印_ddl_日志`](innodb-parameters.html#sysvar_innodb_print_ddl_logs)

    [](<>)[](<>)

    | 命令行格式 | `--innodb打印ddl日志[={OFF | ON}]` |
    | ----- | ------------------------------ |
    | 系统变量 | `[innodb_print_ddl_logs]（innodb parameters.html#sysvar_innodb_print_ddl_logs）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    启用此选项会导致MySQL将DDL日志写入`标准错误`。有关更多信息，请参阅[查看DDL日志](atomic-ddl.html#atomic-ddl-view-logs).

-   [](<>) [`innodb_清除_批量_大小`](innodb-parameters.html#sysvar_innodb_purge_batch_size)

    [](<>)[](<>)

    | 命令行格式 | `--innodb清除批量大小=#` |
    | ----- | ------------------ |
    | 系统变量 | `[innodb_purge_batch_size]（innodb parameters.html#sysvar_innodb_purge_batch_size）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `300` |
    | 最小值 | `1.` |
    | 最大值 | `5000` |

    定义从数据库中清除一批分析和进程的撤消日志页数[历史记录列表](glossary.html#glos_history_list).在多线程清除配置中，协调器清除线程将[`innodb_清除_批量_大小`](innodb-parameters.html#sysvar_innodb_purge_batch_size)通过[`innodb_清除_线程`](innodb-parameters.html#sysvar_innodb_purge_threads)并将该页数分配给每个清除线程。这个[`innodb_清除_批量_大小`](innodb-parameters.html#sysvar_innodb_purge_batch_size)变量还定义了通过撤销日志每128次迭代后清除释放的撤销日志页数。

    这个[`innodb_清除_批量_大小`](innodb-parameters.html#sysvar_innodb_purge_batch_size)该选项旨在与[`innodb_清除_线程`](innodb-parameters.html#sysvar_innodb_purge_threads)背景大多数用户不需要改变[`innodb_清除_批量_大小`](innodb-parameters.html#sysvar_innodb_purge_batch_size)从其默认值。

    有关相关信息，请参阅[第15.8.9节“净化配置”](innodb-purge-configuration.html).

-   [](<>) [`innodb_清除_线程`](innodb-parameters.html#sysvar_innodb_purge_threads)

    [](<>)[](<>)

    | 命令行格式 | `--innodb清除线程=#` |
    | ----- | ---------------- |
    | 系统变量 | `[innodb_purge_threads]（innodb parameters.html#sysvar_innodb_purge_threads）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `4.` |
    | 最小值 | `1.` |
    | 最大值 | `32` |

    专用于该应用程序的后台线程数`InnoDB` [净化](glossary.html#glos_purge)活动增加该值会创建额外的清除线程，这可以在需要的系统上提高效率[DML](glossary.html#glos_dml)操作在多个表上执行。

    有关相关信息，请参阅[第15.8.9节“净化配置”](innodb-purge-configuration.html).

-   [](<>) [`innodb_purge_rseg_truncate_频率`](innodb-parameters.html#sysvar_innodb_purge_rseg_truncate_frequency)

    [](<>)[](<>)

    | 命令行格式 | `--innodb清除rseg截断频率=#` |
    | ----- | ---------------------- |
    | 系统变量 | `[innodb_purge_rseg_truncate_frequency]（innodb parameters.html#sysvar_innodb_purge_rseg_truncate_frequency）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `128` |
    | 最小值 | `1.` |
    | 最大值 | `128` |

    根据调用清除的次数定义清除系统释放回滚段的频率。在释放其回滚段之前，无法截断撤消表空间。通常，清除系统每调用128次清除，就会释放一次回滚段。默认值为128。减小此值会增加清除线程释放回滚段的频率。

    [`innodb_purge_rseg_truncate_频率`](innodb-parameters.html#sysvar_innodb_purge_rseg_truncate_frequency)用于[`innodb_undo_log_truncate`](innodb-parameters.html#sysvar_innodb_undo_log_truncate)。有关更多信息，请参阅[截断撤消表空间](innodb-undo-tablespaces.html#truncate-undo-tablespace).

-   [](<>) [`innodb_random_预读`](innodb-parameters.html#sysvar_innodb_random_read_ahead)

    [](<>)[](<>)

    | 命令行格式 | `--innodb随机预读[={OFF | ON}]` |
    | ----- | --------------------------- |
    | 系统变量 | `[innodb_random_read_ahead](innodb-parameters.html#sysvar_innodb_random_read_ahead)` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `离开` |

    启用随机[预读](glossary.html#glos_read_ahead)优化技术`InnoDB`输入/输出。

    有关不同类型预读请求的性能注意事项的详细信息，请参阅[第 15.8.3.4 节，“配置 InnoDB 缓冲池预取（预读）”](innodb-performance-read_ahead.html).有关一般 I/O 调整建议，请参阅[第 8.5.8 节，“优化 InnoDB 磁盘 I/O”](optimizing-innodb-diskio.html).

-   [](<>) [`innodb_read_ahead_threshold`](innodb-parameters.html#sysvar_innodb_read_ahead_threshold)

    [](<>)[](<>)

    | 命令行格式 | `--innodb-read-ahead-threshold=#` |
    | ----- | --------------------------------- |
    | 系统变量 | `[innodb_read_ahead_threshold](innodb-parameters.html#sysvar_innodb_read_ahead_threshold)` |
    | 范围 | 全球的 |
    | 动态的 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `56` |
    | 最小值 | `0` |
    | 最大值 | `64` |

    控制线性传感器的灵敏度[预读](glossary.html#glos_read_ahead)那个`InnoDB`用于将页面预回迁到[缓冲池](glossary.html#glos_buffer_pool)如果`InnoDB`至少[`innodb_提前读取___阈值`](innodb-parameters.html#sysvar_innodb_read_ahead_threshold)按顺序从[程度](glossary.html#glos_extent)（64页），它会启动以下整个区段的异步读取。允许的值范围为0到64。值为0将禁用预读。对于56的违约，`InnoDB`必须从一个数据块中按顺序读取至少56页，才能启动以下数据块的异步读取。

    了解有多少页是通过预读机制读取的，以及有多少页是在从未被访问的情况下从缓冲池中移出的，在微调[`innodb_提前读取___阈值`](innodb-parameters.html#sysvar_innodb_read_ahead_threshold)背景[`显示引擎INNODB状态`](show-engine.html)输出显示来自计数器的计数器信息[`Innodb_buffer_pool_read_ahead_`](server-status-variables.html#statvar_Innodb_buffer_pool_read_ahead)和[`Innodb_缓冲区_池_读取_提前_驱逐`](server-status-variables.html#statvar_Innodb_buffer_pool_read_ahead_evicted)全局状态变量，该变量报告进入[缓冲池](glossary.html#glos_buffer_pool)通过预读请求，以及此类页面的数量[驱逐](glossary.html#glos_eviction)分别从缓冲池中删除而不被访问。状态变量报告自上次服务器重启以来的全局值。

    [`显示引擎INNODB状态`](show-engine.html)还显示预读页面的读取速率，以及此类页面在未被访问的情况下被逐出的速率。每秒平均值基于上次调用`显示引擎INNODB状态`并显示在`缓冲池和内存`部分[`显示引擎INNODB状态`](show-engine.html)输出

    有关更多信息，请参阅[第15.8.3.4节，“配置InnoDB缓冲池预取（预读）”](innodb-performance-read_ahead.html)。有关一般I/O调整建议，请参阅[第8.5.8节，“优化InnoDB磁盘I/O”](optimizing-innodb-diskio.html).

-   [](<>) [`innodb_读取_io_线程`](innodb-parameters.html#sysvar_innodb_read_io_threads)

    [](<>)[](<>)

    | 命令行格式 | `--innodb读取io线程=#` |
    | ----- | ------------------ |
    | 系统变量 | `[innodb_read_io_threads]（innodb parameters.html#sysvar_innodb_read_io_threads）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `4.` |
    | 最小值 | `1.` |
    | 最大值 | `64` |

    中用于读取操作的I/O线程数`InnoDB`。它对应的写线程是[`innodb_写入_io_线程`](innodb-parameters.html#sysvar_innodb_write_io_threads)。有关更多信息，请参阅[第15.8.5节，“配置后台InnoDB I/O线程的数量”](innodb-performance-multiple_io_threads.html)。有关一般I/O调整建议，请参阅[第8.5.8节，“优化InnoDB磁盘I/O”](optimizing-innodb-diskio.html).

    笔记

    在Linux系统上，使用默认设置运行多个MySQL服务器（通常超过12个）[`innodb_读取_io_线程`](innodb-parameters.html#sysvar_innodb_read_io_threads), [`innodb_写入_io_线程`](innodb-parameters.html#sysvar_innodb_write_io_threads)，以及Linux`aio max nr`设置可能超出系统限制。理想情况下，增加`aio max nr`背景作为一种解决方法，可以减少一个或两个MySQL变量的设置。

-   [](<>) [`innodb_只读`](innodb-parameters.html#sysvar_innodb_read_only)

    [](<>)[](<>)

    | 命令行格式 | `--innodb只读[={OFF | ON}]` |
    | ----- | ------------------------- |
    | 系统变量 | `[innodb_只读]（innodb parameters.html#sysvar_innodb_只读）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    开始`InnoDB`在只读模式下。用于在只读介质上分发数据库应用程序或数据集。还可以在数据仓库中用于在多个实例之间共享同一数据目录。有关更多信息，请参阅[第15.8.2节，“为只读操作配置InnoDB”](innodb-read-only-instance.html).

    之前，启用[`innodb_只读`](innodb-parameters.html#sysvar_innodb_read_only)系统变量阻止仅为`InnoDB`存储引擎。从MySQL 8.0开始，启用[`innodb_只读`](innodb-parameters.html#sysvar_innodb_read_only)防止所有存储引擎执行这些操作。任何存储引擎的表创建和删除操作都会修改中的数据字典表`mysql`系统数据库，但这些表使用`InnoDB`存储引擎，并且在[`innodb_只读`](innodb-parameters.html#sysvar_innodb_read_only)已启用。同样的原则也适用于其他需要修改数据字典表的表操作。例如：

    -   如果[`innodb_只读`](innodb-parameters.html#sysvar_innodb_read_only)系统变量已启用，[`分析表`](analyze-table.html)可能会失败，因为它无法更新数据字典中的统计表，而数据字典使用`InnoDB`对于[`分析表`](analyze-table.html)更新密钥分发的操作，即使该操作更新了表本身（例如，如果它是`米萨姆`表）。要获取更新的分布统计信息，请设置[`信息_模式_统计_到期=0`](server-system-variables.html#sysvar_information_schema_stats_expiry).

    -   [`改变桌子*`tbl\_名称`*引擎=*`引擎名称`*`](alter-table.html)失败，因为它会更新存储在数据字典中的存储引擎名称。

        此外，表中的其他表格`mysql`系统数据库使用`InnoDB`MySQL 8.0中的存储引擎。将这些表设为只读会导致修改它们的操作受到限制。例如：

    -   账户管理报表，如[`创建用户`](create-user.html)和[`授予`](grant.html)失败，因为grant表使用`InnoDB`.

    -   这个[`安装插件`](install-plugin.html)和[`卸载插件`](uninstall-plugin.html)插件管理语句失败，因为`mysql。插件`系统表使用`InnoDB`.

    -   这个[`创建函数`](create-function-loadable.html)和[`下降函数`](drop-function-loadable.html)可加载函数管理语句失败，因为`mysql。func`系统表使用`InnoDB`.

-   [](<>) [`innodb_redo_log_archive_dirs`](innodb-parameters.html#sysvar_innodb_redo_log_archive_dirs)

    [](<>)[](<>)

    | 命令行格式 | `--innodb重做日志归档目录` |
    | ----- | ------------------ |
    | 介绍 | 8.0.17 |
    | 系统变量 | `[innodb_redo_log_archive_dirs]（innodb parameters.html#sysvar_innodb_redo_log_archive_dirs）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 一串 |
    | 默认值 | `无效的` |

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

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

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

    必须指定路径，并且目录必须存在。路径可以包含冒号（“：”），但可以包含分号（；）是不允许的。

-   [](<>) [`innodb_redo_log_encrypt`](innodb-parameters.html#sysvar_innodb_redo_log_encrypt)

    [](<>)[](<>)

    | 命令行格式 | `--innodb重做日志加密[={OFF | ON}]` |
    | ----- | ----------------------------- |
    | 系统变量 | `[innodb_redo_log_encrypt]（innodb parameters.html#sysvar_innodb_redo_log_encrypt）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    控制使用`InnoDB` [静态数据加密功能](innodb-data-encryption.html)。默认情况下禁用重做日志数据的加密。有关更多信息，请参阅[重做日志加密](innodb-data-encryption.html#innodb-data-encryption-redo-log).

-   [](<>) [`innodb_复制_延迟`](innodb-parameters.html#sysvar_innodb_replication_delay)

    [](<>)[](<>)

    | 命令行格式 | `--innodb复制延迟=#` |
    | ----- | ---------------- |
    | 系统变量 | `[innodb_replication_delay]（innodb parameters.html#sysvar_innodb_replication_delay）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `0` |
    | 最小值 | `0` |
    | 最大值 | `4294967295` |

    副本服务器上的复制线程延迟（毫秒），如果[`innodb_线程_并发`](innodb-parameters.html#sysvar_innodb_thread_concurrency)到达。

-   [](<>) [`innodb_在_超时时回滚`](innodb-parameters.html#sysvar_innodb_rollback_on_timeout)

    [](<>)[](<>)

    | 命令行格式 | `--innodb回滚开启超时[={OFF | on}]` |
    | ----- | ----------------------------- |
    | 系统变量 | `[innodb_rollback_on_timeout]（innodb parameters.html#sysvar_innodb_rollback_on_timeout）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    `InnoDB` [后退](glossary.html#glos_rollback)默认情况下，只有事务超时时的最后一条语句。如果[`--innodb回滚超时`](innodb-parameters.html#sysvar_innodb_rollback_on_timeout)则事务超时会导致`InnoDB`中止并回滚整个事务。

    有关更多信息，请参阅[第15.21.5节，“InnoDB错误处理”](innodb-error-handling.html).

-   [](<>) [`innodb_回滚_段`](innodb-parameters.html#sysvar_innodb_rollback_segments)

    [](<>)[](<>)

    | 命令行格式 | `--innodb回滚段=#` |
    | ----- | --------------- |
    | 系统变量 | `[innodb_rollback_segments]（innodb parameters.html#sysvar_innodb_rollback_segments）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `128` |
    | 最小值 | `1.` |
    | 最大值 | `128` |

    [`innodb_回滚_段`](innodb-parameters.html#sysvar_innodb_rollback_segments)定义[回滚段](glossary.html#glos_rollback_segment)分配给每个undo表空间和全局临时表空间，用于生成undo记录的事务。每个回滚段支持的事务数取决于`InnoDB`页面大小和分配给每个事务的撤消日志数。有关更多信息，请参阅[第15.6.6节“撤销日志”](innodb-undo-logs.html).

    有关相关信息，请参阅[第15.3节，“InnoDB多版本控制”](innodb-multi-versioning.html)。有关撤消表空间的信息，请参阅[第15.6.3.4节，“撤消表空间”](innodb-undo-tablespaces.html).

-   [](<>) [`innodb_已保存_页码_调试`](innodb-parameters.html#sysvar_innodb_saved_page_number_debug)

    [](<>)[](<>)

    | 命令行格式 | `--innodb已保存页码调试=#` |
    | ----- | ------------------- |
    | 系统变量 | `[innodb_saved_page_number_debug]（innodb parameters.html#sysvar_innodb_saved_page_number_debug）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `0` |
    | 最大值 | `2**23-1` |

    保存页码。设定[`innodb_fil_make_page_dirty_debug`](innodb-parameters.html#sysvar_innodb_fil_make_page_dirty_debug)选项会弄脏由定义的页面[`innodb_已保存_页码_调试`](innodb-parameters.html#sysvar_innodb_saved_page_number_debug)这个[`innodb_已保存_页码_调试`](innodb-parameters.html#sysvar_innodb_saved_page_number_debug)选项仅在使用中编译调试支持时可用[`用_调试`](source-configuration-options.html#option_cmake_with_debug) **CMake**选项

-   [](<>) [`innodb_段_保留系数_`](innodb-parameters.html#sysvar_innodb_segment_reserve_factor)

    [](<>)[](<>)

    | 命令行格式 | `--innodb段保留系数=#` |
    | ----- | ----------------- |
    | 介绍 | 8.0.26 |
    | 系统变量 | `[innodb_segment_reserve_factor]（innodb parameters.html#sysvar_innodb_segment_reserve_factor）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 数字的 |
    | 默认值 | `12.5` |
    | 最小值 | `0.03` |
    | 最大值 | `40` |

    定义保留为空页的表空间文件段页的百分比。该设置适用于每个表的文件和常规表空间。这个[`innodb_段_保留系数_`](innodb-parameters.html#sysvar_innodb_segment_reserve_factor)默认设置为12.5%，与之前MySQL版本中保留的页面百分比相同。

    有关更多信息，请参阅[配置保留文件段页面的百分比](innodb-file-space.html#innodb-config-reserved-file-segment-pages).

-   [](<>) [`innodb_排序_缓冲区_大小`](innodb-parameters.html#sysvar_innodb_sort_buffer_size)

    [](<>)[](<>)

    | 命令行格式 | `--innodb排序缓冲区大小=#` |
    | ----- | ------------------- |
    | 系统变量 | `[innodb_sort_buffer_size]（innodb parameters.html#sysvar_innodb_sort_buffer_size）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `1048576` |
    | 最小值 | `65536` |
    | 最大值 | `67108864` |

    此变量定义：

    -   用于创建或重建二级索引的联机DDL操作的排序缓冲区大小。然而，从MySQL 8.0.27开始，这个职责由[`innodb_ddl_缓冲区_大小`](innodb-parameters.html#sysvar_innodb_ddl_buffer_size)变量

    -   临时日志文件在存储期间记录并发DML时的扩展量[在线DDL](glossary.html#glos_online_ddl)操作，以及临时日志文件读缓冲区和写缓冲区的大小。

        有关相关信息，请参阅[第15.12.3节，“在线DDL空间要求”](innodb-online-ddl-space-requirements.html).

-   [](<>) [`innodb_旋转_等待_延迟`](innodb-parameters.html#sysvar_innodb_spin_wait_delay)

    [](<>)[](<>)

    | 命令行格式 | `--innodb自旋等待延迟=#` |
    | ----- | ------------------ |
    | 系统变量 | `[innodb_spin_wait_delay]（innodb parameters.html#sysvar_innodb_spin_wait_delay）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `6.` |
    | 最小值 | `0` |
    | 最大值（64位平台，≤ 8.0.13) | `2**64-1` |
    | 最大值（32位平台，≤ 8.0.13) | `2**32-1` |
    | 最大值(≥ 8.0.14) | `1000` |

    一次投票的两次投票之间的最大延迟[快速旋转](glossary.html#glos_spin)锁这种机制的低级实现取决于硬件和操作系统的组合，因此延迟并不对应于固定的时间间隔。

    可与[`innodb\u旋转\u等待\u暂停\u倍增`](innodb-parameters.html#sysvar_innodb_spin_wait_pause_multiplier)变量，用于更好地控制自旋锁轮询延迟的持续时间。

    有关更多信息，请参阅[第15.8.8节，“配置旋转锁轮询”](innodb-performance-spin_lock_polling.html).

-   [](<>) [`innodb\u旋转\u等待\u暂停\u倍增`](innodb-parameters.html#sysvar_innodb_spin_wait_pause_multiplier)

    [](<>)[](<>)

    | 命令行格式 | `--innodb自旋等待暂停乘法器=#` |
    | ----- | --------------------- |
    | 介绍 | 8.0.16 |
    | 系统变量 | `[innodb_spin_wait_pause_乘数]（innodb parameters.html#sysvar_innodb_spin_wait_pause_乘数）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `50` |
    | 最小值 | `1.` |
    | 最大值 | `100` |

    定义一个乘数值，用于确定线程等待获取互斥锁或rw锁时，自旋等待循环中发生的暂停指令数。

    有关更多信息，请参阅[第15.8.8节，“配置旋转锁轮询”](innodb-performance-spin_lock_polling.html).

-   [](<>) [`innodb_stats_auto_recalc`](innodb-parameters.html#sysvar_innodb_stats_auto_recalc)

    [](<>)[](<>)

    | 命令行格式 | `--innodb stats auto recalc[={OFF | ON}]` |
    | ----- | ----------------------------------------- |
    | 系统变量 | `[innodb_stats_auto_recalc]（innodb parameters.html#sysvar_innodb_stats_auto_recalc）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `在…上` |

    原因`InnoDB`自动重新计算[持久性统计数据](glossary.html#glos_persistent_statistics)表中的数据发生实质性变化后。阈值是表中行的10%。此设置适用于在[`innodb_stats_persistent`](innodb-parameters.html#sysvar_innodb_stats_persistent)选项已启用。还可以通过指定`STATS_PERSISTENT=1`在一个[`创建表格`](create-table.html)或[`改变桌子`](alter-table.html)陈述为产生统计数据而采样的数据量由[`innodb_统计数据_持久性_示例_页面`](innodb-parameters.html#sysvar_innodb_stats_persistent_sample_pages)变量

    有关更多信息，请参阅[第15.8.10.1节，“配置持久优化器统计参数”](innodb-persistent-stats.html).

-   [](<>) [`innodb_统计数据_包含_删除_标记`](innodb-parameters.html#sysvar_innodb_stats_include_delete_marked)

    [](<>)[](<>)

    | 命令行格式 | `--innodb统计数据包括删除标记[={OFF | ON}]` |
    | ----- | --------------------------------- |
    | 系统变量 | `[innodb_stats_include_delete_marked]（innodb parameters.html#sysvar_innodb_stats_include_delete_marked）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    默认情况下，`InnoDB`计算统计信息时读取未提交的数据。对于从表中删除行的未提交事务，`InnoDB`排除在计算行估计和索引统计信息时标记为“删除”的记录，这可能会导致其他事务的非最佳执行计划，这些事务在表上同时运行，使用的事务隔离级别不是[`阅读未提交`](innodb-transaction-isolation-levels.html#isolevel_read-uncommitted).为了避免这种情况，[`innodb_统计数据_包含_删除_标记`](innodb-parameters.html#sysvar_innodb_stats_include_delete_marked)可以启用以确保`InnoDB`计算持久性优化器统计信息时包括删除标记的记录。

    什么时候[`innodb_统计数据_包含_删除_标记`](innodb-parameters.html#sysvar_innodb_stats_include_delete_marked)已启用，[`分析表`](analyze-table.html)在重新计算统计信息时考虑删除标记的记录。

    [`innodb_统计数据_包含_删除_标记`](innodb-parameters.html#sysvar_innodb_stats_include_delete_marked)是一个影响所有人的全球环境`InnoDB`桌子。它只适用于持久性优化器统计信息。

    有关相关信息，请参阅[第15.8.10.1节，“配置持久优化器统计参数”](innodb-persistent-stats.html).

-   [](<>) [`innodb_统计方法`](innodb-parameters.html#sysvar_innodb_stats_method)

    [](<>)[](<>)

    | 命令行格式 | `--innodb stats method=value` |
    | ----- | ----------------------------- |
    | 系统变量 | `[innodb_stats_method]（innodb parameters.html#sysvar_innodb_stats_method）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 列举 |
    | 默认值 | `空值等于` |
    | 有效值 | `空值等于`<br/><br/>`空值不相等`<br/><br/>`空值被忽略` |

    服务器如何处理`无效的`收集时的价值观[统计数字](glossary.html#glos_statistics)关于索引值的分布`InnoDB`桌子。允许值为`空值等于`, `空值不相等`和`空值被忽略`对于`空值等于`全部的`无效的`索引值被认为是相等的，并形成一个大小等于`无效的`价值观对于`空值不相等`, `无效的`值被认为是不相等的，并且每个值`无效的`形成大小为1的独特值组。对于`空值被忽略`, `无效的`值被忽略。

    用于生成表统计信息的方法会影响优化器为查询执行选择索引的方式，如中所述[第8.3.8节，“InnoDB和MyISAM索引统计数据收集”](index-statistics.html).

-   [](<>) [`innodb_元数据上的统计数据`](innodb-parameters.html#sysvar_innodb_stats_on_metadata)

    [](<>)[](<>)

    | 命令行格式 | `--innodb元数据统计数据[={OFF | on}]` |
    | ----- | ------------------------------ |
    | 系统变量 | `[innodb_stats_on_metadata]（innodb parameters.html#sysvar_innodb_stats_on_metadata）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    此选项仅适用于optimizer[统计数字](glossary.html#glos_statistics)被配置为非持久性。优化程序统计信息在[`innodb_stats_persistent`](innodb-parameters.html#sysvar_innodb_stats_persistent)已禁用，或者使用`STATS_PERSISTENT=0`。有关更多信息，请参阅[第15.8.10.2节，“配置非持久性优化器统计参数”](innodb-statistics-estimation.html).

    什么时候[`innodb_元数据上的统计数据`](innodb-parameters.html#sysvar_innodb_stats_on_metadata)已启用，`InnoDB`非持久更新[统计数字](glossary.html#glos_statistics)当元数据语句[`显示表格状态`](show-table-status.html)或者在访问[`信息模式。桌子`](information-schema-tables-table.html)或[`信息模式。统计数字`](information-schema-statistics-table.html)桌子。（这些更新与[`分析表`](analyze-table.html)）残疾时，`InnoDB`在这些操作期间不更新统计信息。禁用该设置可以提高具有大量表或索引的模式的访问速度。它还可以提高电池的稳定性[执行计划](glossary.html#glos_query_execution_plan)对于涉及`InnoDB`桌子。

    要更改设置，请发出声明`在元数据上设置全局innodb_stats_=*`模式`*`哪里`*`模式`*`要么`在…上`或`关`（或`1.`或`0`).更改设置需要足够的权限来设置全局系统变量（请参阅[第5.1.9.1节，“系统变量权限”](system-variable-privileges.html))并立即影响所有连接的运行。

-   [](<>) [`innodb_stats_persistent`](innodb-parameters.html#sysvar_innodb_stats_persistent)

    [](<>)[](<>)

    | 命令行格式 | `--innodb stats persistent[={OFF | ON}]` |
    | ----- | ---------------------------------------- |
    | 系统变量 | `[innodb_stats_persistent]（innodb parameters.html#sysvar_innodb_stats_persistent）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `在…上` |

    指定是否`InnoDB`索引统计数据会持久保存到磁盘。否则，可能会频繁重新计算统计数据，这可能会导致[查询执行计划](glossary.html#glos_query_execution_plan).创建表格时，此设置与每个表格一起存储。你可以设定[`innodb_stats_persistent`](innodb-parameters.html#sysvar_innodb_stats_persistent)在创建表之前在全局级别，或使用`持久的`合同条款[`创建表格`](create-table.html)和[`改变桌子`](alter-table.html)语句重写系统范围的设置，并为各个表配置持久性统计信息。

    有关更多信息，请参阅[第15.8.10.1节，“配置持久优化器统计参数”](innodb-persistent-stats.html).

-   [](<>) [`innodb_统计数据_持久性_示例_页面`](innodb-parameters.html#sysvar_innodb_stats_persistent_sample_pages)

    [](<>)[](<>)

    | 命令行格式 | `--innodb统计持久性示例页面=#` |
    | ----- | --------------------- |
    | 系统变量 | `[innodb_stats_persistent_sample_pages]（innodb parameters.html#sysvar_innodb_stats_persistent_sample_pages）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `20` |
    | 最小值 | `1.` |
    | 最大值 | `18446744073709551615` |

    索引的数量[页](glossary.html#glos_page)评估时取样[基数](glossary.html#glos_cardinality)和其他[统计数字](glossary.html#glos_statistics)对于索引列，例如通过[`分析表`](analyze-table.html).增加该值可提高指数统计的准确性，从而提高[查询执行计划](glossary.html#glos_query_execution_plan)，以执行过程中增加I/O为代价[`分析表`](analyze-table.html)为了一个`InnoDB`桌子有关更多信息，请参阅[第15.8.10.1节，“配置持久优化器统计参数”](innodb-persistent-stats.html).

    笔记

    设置一个较高的[`innodb_统计数据_持久性_示例_页面`](innodb-parameters.html#sysvar_innodb_stats_persistent_sample_pages)可能会导致漫长的[`分析表`](analyze-table.html)执行时间。估计用户访问的数据库页面数[`分析表`](analyze-table.html)看见[第15.8.10.3节，“估算InnoDB表的分析表复杂性”](innodb-analyze-table-complexity.html).

    [`innodb_统计数据_持久性_示例_页面`](innodb-parameters.html#sysvar_innodb_stats_persistent_sample_pages)仅适用于以下情况：[`innodb_stats_persistent`](innodb-parameters.html#sysvar_innodb_stats_persistent)为表格启用；什么时候[`innodb_stats_persistent`](innodb-parameters.html#sysvar_innodb_stats_persistent)是残疾的，[`innodb_统计数据_瞬态_样本_页面`](innodb-parameters.html#sysvar_innodb_stats_transient_sample_pages)而不是应用。

-   [](<>) [`innodb_统计数据_瞬态_样本_页面`](innodb-parameters.html#sysvar_innodb_stats_transient_sample_pages)

    [](<>)[](<>)

    | 命令行格式 | `--innodb stats瞬态示例页面=#` |
    | ----- | ------------------------ |
    | 系统变量 | `[innodb_stats_transient_sample_pages]（innodb parameters.html#sysvar_innodb_stats_transient_sample_pages）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `8.` |

    索引的数量[页](glossary.html#glos_page)评估时取样[基数](glossary.html#glos_cardinality)和其他[统计数字](glossary.html#glos_statistics)对于索引列，例如通过[`分析表`](analyze-table.html).默认值为8。增加该值可以提高索引统计的准确性，从而提高[查询执行计划](glossary.html#glos_query_execution_plan)，但在打开`InnoDB`表或重新计算统计信息。有关更多信息，请参阅[第15.8.10.2节，“配置非持久性优化器统计参数”](innodb-statistics-estimation.html).

    笔记

    设置一个较高的[`innodb_统计数据_瞬态_样本_页面`](innodb-parameters.html#sysvar_innodb_stats_transient_sample_pages)可能会导致漫长的[`分析表`](analyze-table.html)执行时间。估计用户访问的数据库页面数[`分析表`](analyze-table.html)看见[第15.8.10.3节，“估算InnoDB表的分析表复杂性”](innodb-analyze-table-complexity.html).

    [`innodb_统计数据_瞬态_样本_页面`](innodb-parameters.html#sysvar_innodb_stats_transient_sample_pages)仅适用于以下情况：[`innodb_stats_persistent`](innodb-parameters.html#sysvar_innodb_stats_persistent)为桌子禁用；什么时候[`innodb_stats_persistent`](innodb-parameters.html#sysvar_innodb_stats_persistent)已启用，[`innodb_统计数据_持久性_示例_页面`](innodb-parameters.html#sysvar_innodb_stats_persistent_sample_pages)而不是应用。取代[`innodb_统计数据_样本_页面`](https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_stats_sample_pages)。有关更多信息，请参阅[第15.8.10.2节，“配置非持久性优化器统计参数”](innodb-statistics-estimation.html).

-   [](<>) [`innodb_状态_输出`](innodb-parameters.html#sysvar_innodb_status_output)

    [](<>)[](<>)

    | 命令行格式 | `--innodb状态输出[={OFF | ON}]` |
    | ----- | --------------------------- |
    | 系统变量 | `[innodb_status_output]（innodb parameters.html#sysvar_innodb_status_output）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    启用或禁用标准的定期输出`InnoDB`班长也可与连用[`innodb_状态_输出_锁定`](innodb-parameters.html#sysvar_innodb_status_output_locks)启用或禁用`InnoDB`锁定监视器。有关更多信息，请参阅[第15.17.2节，“启用InnoDB监视器”](innodb-enabling-monitors.html).

-   [](<>) [`innodb_状态_输出_锁定`](innodb-parameters.html#sysvar_innodb_status_output_locks)

    [](<>)[](<>)

    | 命令行格式 | `--innodb状态输出锁[={OFF | ON}]` |
    | ----- | ---------------------------- |
    | 系统变量 | `[innodb_status_output_locks]（innodb parameters.html#sysvar_innodb_status_output_locks）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    启用或禁用`InnoDB`锁定监视器。如果启用，则`InnoDB`Lock Monitor会打印有关锁的其他信息`显示引擎INNODB状态`输出和定期输出打印到MySQL错误日志。系统的定期输出`InnoDB`锁监视器是标准的一部分`InnoDB`监控输出。标准`InnoDB`因此，必须为`InnoDB`锁定监视器，定期将数据打印到MySQL错误日志。有关更多信息，请参阅[第15.17.2节，“启用InnoDB监视器”](innodb-enabling-monitors.html).

-   [](<>) [`innodb_严格模式`](innodb-parameters.html#sysvar_innodb_strict_mode)

    [](<>)[](<>)

    | 命令行格式 | `--innodb严格模式[={OFF | ON}]` |
    | ----- | --------------------------- |
    | 系统变量 | `[innodb_strict_mode]（innodb parameters.html#sysvar_innodb_strict_mode）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `在…上` |

    什么时候[`innodb_严格模式`](innodb-parameters.html#sysvar_innodb_strict_mode)已启用，`InnoDB`对于某些情况，返回错误而不是警告。

    [严格模式](glossary.html#glos_strict_mode)有助于防止SQL中被忽略的打字错误和语法错误，或各种操作模式和SQL语句组合的其他意外后果。什么时候[`innodb_严格模式`](innodb-parameters.html#sysvar_innodb_strict_mode)已启用，`InnoDB`在某些情况下引发错误条件，而不是发出警告并处理指定的语句（可能有意外行为）。这类似于[`sql_模式`](sql-mode.html)在MySQL中，它控制MySQL接受什么样的SQL语法，并确定它是以静默方式忽略错误，还是验证输入语法和数据值。

    这个[`innodb_严格模式`](innodb-parameters.html#sysvar_innodb_strict_mode)设置会影响对的语法错误的处理[`创建表格`](create-table.html), [`改变桌子`](alter-table.html), [`创建索引`](create-index.html)和[`优化表格`](optimize-table.html)声明。[`innodb_严格模式`](innodb-parameters.html#sysvar_innodb_strict_mode)还启用记录大小检查，以便`插入`或`使现代化`从不因记录对于所选页面大小过大而失败。

    Oracle建议启用[`innodb_严格模式`](innodb-parameters.html#sysvar_innodb_strict_mode)使用时`行格式`和`键块大小`条款[`创建表格`](create-table.html), [`改变桌子`](alter-table.html)和[`创建索引`](create-index.html)声明。什么时候[`innodb_严格模式`](innodb-parameters.html#sysvar_innodb_strict_mode)是残疾的，`InnoDB`忽略冲突子句，并在消息日志中创建仅包含警告的表或索引。生成的表可能具有与预期不同的特性，例如在尝试创建压缩表时缺少压缩支持。什么时候[`innodb_严格模式`](innodb-parameters.html#sysvar_innodb_strict_mode)如果启用，则此类问题会立即产生错误，并且不会创建表或索引。

    您可以启用或禁用[`innodb_严格模式`](innodb-parameters.html#sysvar_innodb_strict_mode)启动时在命令行上`mysqld`，或在MySQL中[配置文件](glossary.html#glos_configuration_file)。您还可以启用或禁用[`innodb_严格模式`](innodb-parameters.html#sysvar_innodb_strict_mode)在运行时使用`设置[GLOBAL | SESSION]innodb_strict_模式=*`模式`*`哪里`*`模式`*`要么`在…上`或`关`.换衣服`全球的`设置需要足够的权限来设置全局系统变量（请参阅[第5.1.9.1节，“系统变量权限”](system-variable-privileges.html))并影响随后连接的所有客户端的操作。任何客户都可以更改`一场`准备[`innodb_严格模式`](innodb-parameters.html#sysvar_innodb_strict_mode)，并且该设置仅影响该客户端。

    [`innodb_严格模式`](innodb-parameters.html#sysvar_innodb_strict_mode)不适用于[通用表空间](glossary.html#glos_general_tablespace).常规表空间的表空间管理规则严格独立于[`innodb_严格模式`](innodb-parameters.html#sysvar_innodb_strict_mode)。有关更多信息，请参阅[第13.1.21节，“创建表空间语句”](create-tablespace.html).

    从MySQL 8.0.26开始，设置此系统变量的会话值是一项受限操作。会话用户必须具有足够的权限来设置受限会话变量。看见[第5.1.9.1节，“系统变量权限”](system-variable-privileges.html).

-   [](<>) [`innodb_同步_阵列_大小`](innodb-parameters.html#sysvar_innodb_sync_array_size)

    [](<>)[](<>)

    | 命令行格式 | `--innodb同步阵列大小=#` |
    | ----- | ------------------ |
    | 系统变量 | `[innodb_sync_array_size]（innodb parameters.html#sysvar_innodb_sync_array_size）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `1.` |
    | 最小值 | `1.` |
    | 最大值 | `1024` |

    定义互斥锁/锁等待数组的大小。增加该值会拆分用于协调线程的内部数据结构，以便在具有大量等待线程的工作负载中实现更高的并发性。此设置必须在MySQL实例启动时配置，以后不能更改。对于经常产生大量等待线程（通常大于768）的工作负载，建议增加该值。

-   [](<>) [`innodb_同步_自旋_循环`](innodb-parameters.html#sysvar_innodb_sync_spin_loops)

    [](<>)[](<>)

    | 命令行格式 | `--innodb同步自旋循环=#` |
    | ----- | ------------------ |
    | 系统变量 | `[innodb_sync_spin_loops]（innodb parameters.html#sysvar_innodb_sync_spin_loops）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `30` |
    | 最小值 | `0` |
    | 最大值 | `4294967295` |

    线程等待事件的次数`InnoDB`线程挂起前释放的互斥锁。

-   [](<>) [`innodb_同步_调试`](innodb-parameters.html#sysvar_innodb_sync_debug)

    [](<>)[](<>)

    | 命令行格式 | `--innodb同步调试[={OFF | ON}]` |
    | ----- | --------------------------- |
    | 系统变量 | `[innodb_sync_debug]（innodb parameters.html#sysvar_innodb_sync_debug）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    启用的同步调试检查`InnoDB`存储引擎。只有在使用中编译调试支持时，此选项才可用[`用_调试`](source-configuration-options.html#option_cmake_with_debug) **CMake**选项

-   [](<>) [`innodb_表_锁`](innodb-parameters.html#sysvar_innodb_table_locks)

    [](<>)[](<>)

    | 命令行格式 | `--innodb表锁[={OFF | ON}]` |
    | ----- | ------------------------- |
    | 系统变量 | `[innodb_table_locks]（innodb parameters.html#sysvar_innodb_table_locks）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `在…上` |

    如果[`自动提交=0`](server-system-variables.html#sysvar_autocommit), `InnoDB`荣誉[`锁桌`](lock-tables.html); MySQL不会从`锁桌子。。。写`直到所有其他线程释放了对表的所有锁。的默认值[`innodb_表_锁`](innodb-parameters.html#sysvar_innodb_table_locks)是1，这意味着[`锁桌`](lock-tables.html)使InnoDB在以下情况下在内部锁定表：[`自动提交=0`](server-system-variables.html#sysvar_autocommit).

    [`innodb_table_locks=0`](innodb-parameters.html#sysvar_innodb_table_locks)对使用显式锁定的表无效[`锁桌子。。。写`](lock-tables.html)。它确实对被锁定的表有影响，以便通过[`锁桌子。。。写`](lock-tables.html)隐式（例如，通过触发器）或[`锁桌子。。。阅读`](lock-tables.html).

    有关相关信息，请参阅[第15.7节，“InnoDB锁定和事务模型”](innodb-locking-transaction-model.html).

-   [](<>) [`innodb_temp_data_file_path`](innodb-parameters.html#sysvar_innodb_temp_data_file_path)

    [](<>)[](<>)

    | 命令行格式 | `--innodb临时数据文件路径=文件名` |
    | ----- | ---------------------- |
    | 系统变量 | `[innodb_temp_data_file_path]（innodb parameters.html#sysvar_innodb_temp_data_file_path）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 一串 |
    | 默认值 | `ibtmp1:12M：自动扩展` |

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

    如果没有为指定值[`innodb_temp_data_file_path`](innodb-parameters.html#sysvar_innodb_temp_data_file_path)，默认行为是创建一个名为`ibtmp1`在[`innodb_数据_主页_目录`](innodb-parameters.html#sysvar_innodb_data_home_dir)目录初始文件大小略大于12MB。

    全局临时表空间数据文件规范的语法包括文件名、文件大小和`自动扩展`和`最大值`属性：

    ```
    file_name:file_size[:autoextend[:max:max_file_size]]
    ```

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

    文件大小通过附加以KB、MB或GB为单位指定`K`, `M`或`G`到大小值。文件大小之和必须略大于12MB。

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

    这个`自动扩展`和`最大值`属性只能用于中最后指定的数据文件[`innodb_temp_data_file_path`](innodb-parameters.html#sysvar_innodb_temp_data_file_path)背景例如：

    ```
    [mysqld]
    innodb_temp_data_file_path=ibtmp1:50M;ibtmp2:12M:autoextend:max:500M
    ```

    这个`自动扩展`选项使数据文件在可用空间不足时自动增大大小。这个`自动扩展`默认情况下，增量为64MB。要修改增量，请更改[`innodb_自动扩展_增量`](innodb-parameters.html#sysvar_innodb_autoextend_increment)变量设置。

    全局临时表空间数据文件的目录路径是通过连接[`innodb_数据_主页_目录`](innodb-parameters.html#sysvar_innodb_data_home_dir)和[`innodb_temp_data_file_path`](innodb-parameters.html#sysvar_innodb_temp_data_file_path).

    跑步前`InnoDB`在只读模式下，设置[`innodb_temp_data_file_path`](innodb-parameters.html#sysvar_innodb_temp_data_file_path)到数据目录之外的位置。路径必须相对于数据目录。例如：

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

    有关更多信息，请参阅[全局临时表空间](innodb-temporary-tablespace.html#innodb-global-temporary-tablespace).

-   [](<>) [`innodb_temp_表空间_dir`](innodb-parameters.html#sysvar_innodb_temp_tablespaces_dir)

    [](<>)[](<>)

    | 命令行格式 | `--innodb临时表空间dir=dir_name` |
    | ----- | --------------------------- |
    | 介绍 | 8.0.13 |
    | 系统变量 | `[innodb_temp_tablespaces_dir]（innodb parameters.html#sysvar_innodb_temp_tablespaces_dir）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 目录名 |
    | 默认值 | `#innodb_temp` |

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

    从MySQL 8.0.16开始，会话临时表空间总是存储用户创建的临时表和优化器使用`InnoDB`（以前，内部临时表的磁盘存储引擎由[`内部\u tmp\u磁盘\u存储\u引擎`](server-system-variables.html#sysvar_internal_tmp_disk_storage_engine)不再支持的系统变量。看见[磁盘上内部临时表的存储引擎](internal-temporary-tables.html#internal-temporary-tables-engines-disk).)

    有关更多信息，请参阅[会话临时表空间](innodb-temporary-tablespace.html#innodb-session-temporary-tablespaces).

-   [](<>) [`innodb_线程_并发`](innodb-parameters.html#sysvar_innodb_thread_concurrency)

    [](<>)[](<>)[](<>)

    | 命令行格式 | `--innodb线程并发=#` |
    | ----- | ---------------- |
    | 系统变量 | `[innodb_thread_concurrency]（innodb parameters.html#sysvar_innodb_thread_concurrency）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `0` |
    | 最小值 | `0` |
    | 最大值 | `1000` |

    定义线程内部允许的最大线程数`InnoDB`.值0（默认值）被解释为无限并发（无限制）。此变量用于在高并发系统上进行性能调整。

    `InnoDB`尝试将线程数保持在内部`InnoDB`小于或等于[`innodb_线程_并发`](innodb-parameters.html#sysvar_innodb_thread_concurrency)限度一旦达到限制，额外的线程将被放入等待线程的“先进先出”（FIFO）队列中。等待锁的线程不计入并发执行的线程数。

    正确的设置取决于工作负载和计算环境。如果您的MySQL实例与其他应用程序共享CPU资源，或者如果您的工作量或并发用户数在增长，请考虑设置此变量。测试一系列值，以确定提供最佳性能的设置。[`innodb_线程_并发`](innodb-parameters.html#sysvar_innodb_thread_concurrency)是一个动态变量，允许在现场测试系统上进行不同设置的试验。如果某个特定设置的性能不佳，可以快速设置[`innodb_线程_并发`](innodb-parameters.html#sysvar_innodb_thread_concurrency)回到0。

    使用以下指南帮助找到并保持适当的设置：

    -   如果一个工作负载的并发用户线程数一直很小，并且不影响性能，则设置[`innodb_线程_并发=0`](innodb-parameters.html#sysvar_innodb_thread_concurrency)（没有限制）。

    -   如果你的工作量一直很重或偶尔出现峰值，那么设置一个[`innodb_线程_并发`](innodb-parameters.html#sysvar_innodb_thread_concurrency)计算并调整它，直到找到提供最佳性能的线程数。例如，假设您的系统通常有40到50个用户，但这个数字会定期增加到60、70或更多。通过测试，您发现性能在很大程度上保持稳定，最多允许80个并发用户。在这种情况下，设置[`innodb_线程_并发`](innodb-parameters.html#sysvar_innodb_thread_concurrency)到80岁。

    -   如果你不想`InnoDB`要为用户线程使用超过一定数量的虚拟CPU（例如，20个虚拟CPU），请设置[`innodb_线程_并发`](innodb-parameters.html#sysvar_innodb_thread_concurrency)到这个数字（或可能更低，取决于性能测试）。如果您的目标是将MySQL与其他应用程序隔离，请考虑绑定MySQL。`mysqld`进程专用于虚拟CPU。但是，请注意，如果`mysqld`这个过程并不总是很忙。在这种情况下，可以绑定`mysqld`进程，但允许其他应用程序使用部分或全部虚拟CPU。

        笔记

        从操作系统的角度来看，使用资源管理解决方案来管理应用程序之间如何共享CPU时间，可能比绑定`mysqld`过程例如，您可以将90%的虚拟CPU时间分配给给定的应用程序，而其他关键进程*不是吗*运行，并在其他关键流程运行时将该值扩展回40%*是*跑步

    -   在某些情况下，最佳[`innodb_线程_并发`](innodb-parameters.html#sysvar_innodb_thread_concurrency)设置可以小于虚拟CPU的数量。

    -   一[`innodb_线程_并发`](innodb-parameters.html#sysvar_innodb_thread_concurrency)值太高可能会导致性能下降，因为系统内部和资源上的争用增加。

    -   定期监控和分析你的系统。工作负载、用户数量或计算环境的变化可能需要调整[`innodb_线程_并发`](innodb-parameters.html#sysvar_innodb_thread_concurrency)背景

        值为0将禁用`InnoDB内部的查询`和`队列中的查询`柜台`行操作`部分`显示引擎INNODB状态`输出

        有关相关信息，请参阅[第15.8.4节，“为InnoDB配置线程并发性”](innodb-performance-thread_concurrency.html).

-   [](<>) [`innodb_线程_睡眠_延迟`](innodb-parameters.html#sysvar_innodb_thread_sleep_delay)

    [](<>)[](<>)

    | 命令行格式 | `--innodb线程睡眠延迟=#` |
    | ----- | ------------------ |
    | 系统变量 | `[innodb_thread_sleep_delay]（innodb parameters.html#sysvar_innodb_thread_sleep_delay）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `10000` |
    | 最小值 | `0` |
    | 最大值 | `1000000` |

    多长时间`InnoDB`线程在加入`InnoDB`排队，以微秒为单位。默认值为10000。值为0将禁用睡眠。你可以设定[`innodb_自适应_最大_睡眠_延迟`](innodb-parameters.html#sysvar_innodb_adaptive_max_sleep_delay)达到你允许的最高值[`innodb_线程_睡眠_延迟`](innodb-parameters.html#sysvar_innodb_thread_sleep_delay)和`InnoDB`自动调整[`innodb_线程_睡眠_延迟`](innodb-parameters.html#sysvar_innodb_thread_sleep_delay)上升或下降取决于当前线程调度活动。这种动态调整有助于线程调度机制在系统负载较轻或接近满负荷运行时顺利工作。

    有关更多信息，请参阅[第15.8.4节，“为InnoDB配置线程并发性”](innodb-performance-thread_concurrency.html).

-   [](<>) [`innodb_tmpdir`](innodb-parameters.html#sysvar_innodb_tmpdir)

    [](<>)[](<>)

    | 命令行格式 | `--innodb tmpdir=dir_name` |
    | ----- | -------------------------- |
    | 系统变量 | `[innodb_tmpdir]（innodb parameters.html#sysvar_innodb_tmpdir）` |
    | 范围 | 全球会议 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 目录名 |
    | 默认值 | `无效的` |

    用于为联机期间创建的临时排序文件定义备用目录[`改变桌子`](alter-table.html)重建表的操作。

    在线 的[`改变桌子`](alter-table.html)重建表的操作也会创建*中间的*表文件与原始表位于同一目录中。这个[`innodb_tmpdir`](innodb-parameters.html#sysvar_innodb_tmpdir)选项不适用于中间表文件。

    有效值是MySQL数据目录路径以外的任何目录路径。如果该值为NULL（默认值），则会在MySQL临时目录中创建临时文件(`$TMPDIR`在Unix上，`%温度%`在Windows上，或[`--tmpdir`](server-system-variables.html#sysvar_tmpdir)配置选项）。如果指定了目录，则仅当[`innodb_tmpdir`](innodb-parameters.html#sysvar_innodb_tmpdir)使用[`设置`](set-variable.html)陈述如果在目录字符串中提供了符号链接，则该符号链接将被解析并存储为绝对路径。路径不应超过512字节。在线[`改变桌子`](alter-table.html)如果出现以下情况，操作将报告错误：[`innodb_tmpdir`](innodb-parameters.html#sysvar_innodb_tmpdir)设置为无效目录。[`innodb_tmpdir`](innodb-parameters.html#sysvar_innodb_tmpdir)覆盖MySQL[`tmpdir`](server-system-variables.html#sysvar_tmpdir)设置，但仅适用于在线[`改变桌子`](alter-table.html)操作。

    这个`文件`配置时需要特权[`innodb_tmpdir`](innodb-parameters.html#sysvar_innodb_tmpdir).

    这个[`innodb_tmpdir`](innodb-parameters.html#sysvar_innodb_tmpdir)该选项的引入有助于避免位于服务器上的临时文件目录溢出`临时文件系统`文件系统。这种溢出可能是在联机过程中创建大型临时排序文件的结果[`改变桌子`](alter-table.html)重建表的操作。

    在复制环境中，只考虑复制[`innodb_tmpdir`](innodb-parameters.html#sysvar_innodb_tmpdir)设置所有服务器是否具有相同的操作系统环境。否则，复制[`innodb_tmpdir`](innodb-parameters.html#sysvar_innodb_tmpdir)设置可能会导致联机运行时复制失败[`改变桌子`](alter-table.html)重建表的操作。如果服务器操作环境不同，建议您配置[`innodb_tmpdir`](innodb-parameters.html#sysvar_innodb_tmpdir)分别在每台服务器上。

    有关更多信息，请参阅[第15.12.3节，“在线DDL空间要求”](innodb-online-ddl-space-requirements.html).有关在线[`改变桌子`](alter-table.html)操作，参见[第15.12节，“InnoDB和在线DDL”](innodb-online-ddl.html).

-   [](<>) [`innodb_trx_purge_view_update_only_debug`](innodb-parameters.html#sysvar_innodb_trx_purge_view_update_only_debug)

    [](<>)[](<>)

    | 命令行格式 | `--innodb trx清除视图仅更新调试[={OFF | ON}]` |
    | ----- | ------------------------------------ |
    | 系统变量 | `[innodb_trx_purge_view_update_only_debug]（innodb parameters.html#sysvar_innodb_trx_purge_view_update_only_debug）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    暂停清除删除标记的记录，同时允许更新清除视图。此选项人为地创建了一种情况，即清除视图已更新，但尚未执行清除。只有在使用中编译调试支持时，此选项才可用[`用_调试`](source-configuration-options.html#option_cmake_with_debug) **CMake**选项

-   [](<>) [`innodb_trx_rseg_n_插槽_调试`](innodb-parameters.html#sysvar_innodb_trx_rseg_n_slots_debug)

    [](<>)[](<>)

    | 命令行格式 | `--innodb-trx-rseg-n-slots-debug=#` |
    | ----- | ----------------------------------- |
    | 系统变量 | `[innodb_trx_rseg_n_slots_debug]（innodb parameters.html#sysvar_innodb_trx_rseg_n_slots_debug）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `0` |
    | 最大值 | `1024` |

    设置一个调试标志来限制`TRX_RSEG_N_插槽`对于给定的`trx_rsegf_undo_find_free`查找撤消日志段的可用插槽的函数。只有在使用中编译调试支持时，此选项才可用[`用_调试`](source-configuration-options.html#option_cmake_with_debug) **CMake**选项

-   [](<>) [`innodb_undo_目录`](innodb-parameters.html#sysvar_innodb_undo_directory)

    [](<>)[](<>)

    | 命令行格式 | `--innodb undo directory=dir_name` |
    | ----- | ---------------------------------- |
    | 系统变量 | `[innodb_undo_目录]（innodb parameters.html#sysvar_innodb_undo_目录）` |
    | 范围 | 全球的 |
    | 动态 | 不 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 目录名 |

    那条路在哪里`InnoDB`创建撤消表空间。通常用于在不同的存储设备上放置撤消表空间。

    没有默认值（为空）。如果[`innodb_undo_目录`](innodb-parameters.html#sysvar_innodb_undo_directory)变量未定义，则在数据目录中创建撤消表空间。

    默认的撤消表空间(`innodb_undo_001`和`innodb_undo_002`)MySQL实例初始化时创建的实例始终位于[`innodb_undo_目录`](innodb-parameters.html#sysvar_innodb_undo_directory)变量

    撤消使用创建的表空间[`创建撤消表空间`](create-tablespace.html)语法是在[`innodb_undo_目录`](innodb-parameters.html#sysvar_innodb_undo_directory)变量，如果未指定其他路径。

    有关更多信息，请参阅[第15.6.3.4节，“撤消表空间”](innodb-undo-tablespaces.html).

-   [](<>) [`innodb_undo_log_encrypt`](innodb-parameters.html#sysvar_innodb_undo_log_encrypt)

    [](<>)[](<>)

    | 命令行格式 | `--innodb undo log encrypt[={OFF | ON}]` |
    | ----- | ---------------------------------------- |
    | 系统变量 | `[innodb_undo_log_encrypt]（innodb parameters.html#sysvar_innodb_undo_log_encrypt）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `关` |

    控制使用`InnoDB` [静态数据加密功能](innodb-data-encryption.html)。仅适用于位于单独数据库中的撤消日志[基于还原表空间](glossary.html#glos_undo_tablespace)看见[第15.6.3.4节，“撤消表空间”](innodb-undo-tablespaces.html)。系统表空间中的撤消日志数据不支持加密。有关更多信息，请参阅[撤消日志加密](innodb-data-encryption.html#innodb-data-encryption-undo-log).

-   [](<>) [`innodb_undo_log_truncate`](innodb-parameters.html#sysvar_innodb_undo_log_truncate)

    [](<>)[](<>)

    | 命令行格式 | `--innodb undo log truncate[={OFF | ON}]` |
    | ----- | ----------------------------------------- |
    | 系统变量 | `[innodb_undo_log_truncate]（innodb parameters.html#sysvar_innodb_undo_log_truncate）` |
    | 范围 | 全球的 |
    | 动态 | 对 |
    | [`集_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `在…上` |

    启用时，撤消超过由定义的阈值的表空间[`innodb_max_undo_log_size`](innodb-parameters.html#sysvar_innodb_max_undo_log_size)标记为截断。只能截断撤消表空间。不支持截断驻留在系统表空间中的撤消日志。要进行截断，必须至少有两个undo表空间。

    这个[`innodb_purge_rseg_truncate_频率`](innodb-parameters.html#sysvar_innodb_purge_rseg_truncate_frequency)变量可用于加快撤消表空间的截断。

    有关更多信息，请参阅[截断撤消表空间](innodb-undo-tablespaces.html#truncate-undo-tablespace).

-   [](<>) [`innodb_undo_tablespaces`](innodb-parameters.html#sysvar_innodb_undo_tablespaces)

    [](<>)[](<>)

    | 命令行格式 | `--innodb-undo-tablespaces=#` |
    | ----- | ----------------------------- |
    | 已弃用 | 是的 |
    | 系统变量 | `[innodb_undo_tablespaces](innodb-parameters.html#sysvar_innodb_undo_tablespaces)` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `2` |
    | 最小值 | `2` |
    | 最大值 | `127` |

    定义数量[撤消表空间](glossary.html#glos_undo_tablespace)被使用`InnoDB`.默认值和最小值为 2。

    笔记

    这[`innodb_undo_tablespaces`](innodb-parameters.html#sysvar_innodb_undo_tablespaces)自 MySQL 8.0.14 起，变量已弃用且不再可配置。预计它会在未来的版本中被删除。

    有关详细信息，请参阅[第 15.6.3.4 节，“撤消表空间”](innodb-undo-tablespaces.html).

-   [](<>) [`innodb_use_fdatasync`](innodb-parameters.html#sysvar_innodb_use_fdatasync)

    [](<>)[](<>)

    | 命令行格式 | `--innodb-use-fdatasync[={OFF|ON}]` |
    | ----- | ----------------------------------- |
    | 介绍 | 8.0.26 |
    | 系统变量 | `[innodb_use_fdatasync](innodb-parameters.html#sysvar_innodb_use_fdatasync)` |
    | 范围 | 全球的 |
    | 动态的 | 是的 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `离开` |

    在支持的平台上`数据同步（）`系统调用，启用[`innodb_use_fdatasync`](innodb-parameters.html#sysvar_innodb_use_fdatasync)变量允许使用`数据同步（）`代替`同步（）`操作系统刷新的系统调用。一个`数据同步（）`除非后续数据检索需要，否则 call 不会刷新对文件元数据的更改，从而提供潜在的性能优势。

    的一个子集[`innodb_flush_method`](innodb-parameters.html#sysvar_innodb_flush_method)设置如`同步`,`O_DSYNC`， 和`O_DIRECT`采用`同步（）`系统调用。这[`innodb_use_fdatasync`](innodb-parameters.html#sysvar_innodb_use_fdatasync)变量在使用这些设置时适用。

-   [](<>) [`innodb_use_native_aio`](innodb-parameters.html#sysvar_innodb_use_native_aio)

    [](<>)[](<>)

    | 命令行格式 | `--innodb-use-native-aio[={OFF|ON}]` |
    | ----- | ------------------------------------ |
    | 系统变量 | `[innodb_use_native_aio](innodb-parameters.html#sysvar_innodb_use_native_aio)` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `在` |

    指定是否使用 Linux 异步 I/O 子系统。此变量仅适用于 Linux 系统，并且在服务器运行时无法更改。通常，您不需要配置此选项，因为它默认启用。

    这[异步 I/O](glossary.html#glos_asynchronous_io)能力`InnoDB`在 Windows 系统上具有在 Linux 系统上可用。（其他类 Unix 系统继续使用同步 I/O 调用。）此功能提高了 I/O 密集型系统的可伸缩性，这些系统通常显示许多挂起的读/写`显示引擎 INNODB 状态\G`输出。

    运行大量`InnoDB`I/O 线程，尤其是在同一台服务器机器上运行多个此类实例，可能会超出 Linux 系统的容量限制。在这种情况下，您可能会收到以下错误：

    ```
    EAGAIN: The specified maxevents exceeds the user's limit of available events.
    ```

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

    但是，如果操作系统中的异步 I/O 子系统出现问题，`InnoDB`从开始，您可以启动服务器[`innodb_use_native_aio=0`](innodb-parameters.html#sysvar_innodb_use_native_aio).此选项也可能在启动期间自动禁用，如果`InnoDB`检测潜在问题，例如`临时目录`地点，`tmpfs`文件系统和不支持 AIO 的 Linux 内核`tmpfs`.

    有关详细信息，请参阅[第 15.8.6 节，“在 Linux 上使用异步 I/O”](innodb-linux-native-aio.html).

-   [](<>) `innodb_validate_tablespace_paths`

    [](<>)[](<>)

    | 命令行格式 | `--innodb-validate-tablespace-paths[={OFF|ON}]` |
    | ----- | ----------------------------------------------- |
    | 介绍 | 8.0.21 |
    | 系统变量 | `[innodb_validate_tablespace_paths](innodb-parameters.html#sysvar_innodb_validate_tablespace_paths)` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 布尔值 |
    | 默认值 | `在` |

    控制表空间文件路径验证。启动时，`InnoDB`如果表空间文件已移动到不同的位置，则根据存储在数据字典中的表空间文件路径验证已知表空间文件的路径。这[`innodb_validate_tablespace_paths`](innodb-parameters.html#sysvar_innodb_validate_tablespace_paths)变量允许禁用表空间路径验证。此功能适用于不移动表空间文件的环境。禁用路径验证可以缩短具有大量表空间文件的系统的启动时间。

    警告

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

    有关详细信息，请参阅[第 15.6.3.7 节，“禁用表空间路径验证”](innodb-disabling-tablespace-path-validation.html).

-   [](<>) [`innodb_version`](innodb-parameters.html#sysvar_innodb_version)

    [](<>)[](<>)

    这`InnoDB`版本号。在 MySQL 8.0 中，单独的版本编号为`InnoDB`不适用，这个值是相同的[`版本`](server-system-variables.html#sysvar_version)服务器的编号。

-   [](<>) [`innodb_write_io_threads`](innodb-parameters.html#sysvar_innodb_write_io_threads)

    [](<>)[](<>)

    | 命令行格式 | `--innodb-write-io-threads=#` |
    | ----- | ----------------------------- |
    | 系统变量 | `[innodb_write_io_threads](innodb-parameters.html#sysvar_innodb_write_io_threads)` |
    | 范围 | 全球的 |
    | 动态的 | 不 |
    | [`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var)提示适用 | 不 |
    | 类型 | 整数 |
    | 默认值 | `4` |
    | 最小值 | `1` |
    | 最大值 | `64` |

    中用于写入操作的I/O线程数`InnoDB`。默认值为4。读线程的对应项是[`innodb_读取_io_线程`](innodb-parameters.html#sysvar_innodb_read_io_threads)。有关更多信息，请参阅[第15.8.5节，“配置后台InnoDB I/O线程的数量”](innodb-performance-multiple_io_threads.html)。有关一般I/O调整建议，请参阅[第8.5.8节，“优化InnoDB磁盘I/O”](optimizing-innodb-diskio.html).

    笔记

    在Linux系统上，使用默认设置运行多个MySQL服务器（通常超过12个）[`innodb_读取_io_线程`](innodb-parameters.html#sysvar_innodb_read_io_threads),[`innodb_写入_io_线程`](innodb-parameters.html#sysvar_innodb_write_io_threads)，以及Linux`aio max nr`设置可能超出系统限制。理想情况下，增加`aio max nr`背景作为一种解决方法，可以减少一个或两个MySQL变量的设置。

    还要考虑到[`sync_binlog`](replication-options-binary-log.html#sysvar_sync_binlog)，它控制二进制日志与磁盘的同步。

    有关一般I/O调整建议，请参阅[第8.5.8节，“优化InnoDB磁盘I/O”](optimizing-innodb-diskio.html).
