说明
使用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_table | ON/OFF | 控制InnoDB表是否使用单独的表空间文件 | 启用此选项可以更好地管理表空间和性能,但在某些情况下可能不适用 |
| innodb_flush_log_at_trx_commit | 0/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_neighbors | ON/OFF | 控制InnoDB写入磁盘时是否将相邻页一起刷新 | 在某些存储系统上可能会提高性能,但对其他存储系统可能无效 |
| innodb_stats_on_metadata | ON/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_truncate | ON/OFF | 控制InnoDB是否在事务提交后截断回 |