MySQL - 环境变量说明

102 阅读3分钟

说明

使用show variables like '%';指令可以查看到当前MySQL所有的运行环境参数信息,在MySQL 8中有大约576条配置信息(不同的环境和版本可能会有小幅差别),这里只需要关注一些主要的配置参数即可,当然,有需要时你也可以修改它们

这里只罗列了一些比较重要的参数

键位名称参数格式参数用途注意事项
innodb_buffer_pool_size数字 + 单位设置InnoDB存储引擎的缓冲池大小要根据可用内存和数据量进行适当配置
max_connections数字允许的最大并发连接数要根据应用程序需求和服务器资源进行适当配置
query_cache_type数字查询缓存类型设置建议使用0(禁用)或2(开启并根据需要进行逐个查询缓存控制)
query_cache_size数字 + 单位查询缓存大小设置在高并发环境中慎重使用,可能对性能产生负面影响
innodb_log_file_size数字 + 单位InnoDB存储引擎的日志文件大小设置要慎重更改此设置,可能需要删除现有的日志文件
key_buffer_size数字 + 单位MyISAM存储引擎的键缓冲区大小设置仅对使用MyISAM表的应用程序重要,对InnoDB表无效
innodb_file_per_tableON/OFF控制InnoDB表是否使用单独的表空间文件启用此选项可以更好地管理表空间和性能,但在某些情况下可能不适用
innodb_flush_log_at_trx_commit0/1/2控制InnoDB事务提交时刷新日志的行为设置为1以确保事务持久性,但可能对性能产生负面影响
innodb_io_capacity数字指定InnoDB存储引擎的磁盘I/O能力要根据存储系统的性能进行适当配置
innodb_buffer_pool_instances数字InnoDB缓冲池的实例数量可以根据可用内存和并发连接数进行适当配置
innodb_flush_method字符串控制InnoDB数据刷新到磁盘的方法需要根据操作系统和存储设备进行适当配置
join_buffer_size数字 + 单位设置连接操作的缓冲区大小可以根据查询的复杂性进行调整,较大的缓冲区可能提高性能
sort_buffer_size数字 + 单位设置排序操作的缓冲区大小
innodb_thread_concurrency数字控制InnoDB线程并发度可以根据系统性能进行适当配置
innodb_flush_neighborsON/OFF控制InnoDB写入磁盘时是否将相邻页一起刷新在某些存储系统上可能会提高性能,但对其他存储系统可能无效
innodb_stats_on_metadataON/OFF控制InnoDB是否在每次访问表元数据时自动更新统计信息对于频繁修改表结构的环境,可以禁用以提高性能
innodb_read_io_threads数字InnoDB读取I/O线程数根据系统性能和负载进行适当配置
innodb_write_io_threads数字InnoDB写入I/O线程数根据系统性能和负载进行适当配置
thread_cache_size数字线程缓存大小控制已分配线程的数量,可以根据并发连接数进行适当配置
innodb_lock_wait_timeout数字InnoDB锁等待超时时间可以根据应用程序需求和锁等待情况进行适当配置
innodb_log_buffer_size数字 + 单位InnoDB日志缓冲区大小可以根据日志写入负载进行适当配置
thread_handling字符串控制线程处理方式建议设置为"pool-of-threads"以提高性能
innodb_autoinc_lock_mode数字InnoDB自增锁模式建议设置为2以提高并发性能
table_open_cache数字表缓存大小根据系统中打开的表数量进行适当配置
innodb_purge_threads数字InnoDB清理线程数量可以根据系统负载进行适当配置
innodb_file_format字符串InnoDB存储引擎使用的文件格式取决于应用程序需求和与其他MySQL实例的兼容性
innodb_undo_logs数字InnoDB事务回滚日志数量可以根据事务负载进行适当配置
innodb_undo_tablespaces数字InnoDB事务回滚表空间数量可以根据事务负载进行适当配置
innodb_undo_log_truncateON/OFF控制InnoDB是否在事务提交后截断回