" \u是登陆用户名,\h是系统主机名,\d是当前数据库,\r是空格。default_character_set=utf8 --设置客户端的字符集user=root --设置登陆用户名,如果指定本地登陆就不用输入用户名了。passwo">

Mysql 5.7忧化配置详解

来源:这里教程网 时间:2026-03-01 15:53:25 作者:

一、客户端参数(mysql) no-auto-rehash      -- 交互式终端命令自动补全 prompt= "\\u@\\h : \\d\\r:\\m:\\s>"      \u是登陆用户名,\h是系统主机名,\d是当前数据库,\r是空格。 default_character_set=utf8     -- 设置客户端的字符集 user=root      -- 设置登陆用户名,如果指定本地登陆就不用输入用户名了。 password=密码     -- 设置登陆密码,如果指定本地登陆就不用输入密码。(不安全) 二、服务端参数(mysqld) 1.innodb忧化参数 server_id=10          --server id值。 default_storage_engine=InnoDB             --默认存储引擎 innodb_buffer_pool_size=系统内存X75% innodb_buffer_pool_instances=1     --一般是CPU的个数,总的缓存也除以这个值就是每个缓存池的大小。(默认是1) innodb_buffer_pool_dump_at_shutdown=ON     --数据库关闭时备份缓存池的数据。(默认ON) innodb_buffer_pool_load_at_startup=ON      --数据库启动时加载缓存池的数据。(默认ON) innodb_buffer_pool_dump_pct=25                --将缓存池前25%的数据备份到磁盘。(默认是25) innodb_lru_scan_depth=1024                        --如果缓存池有1024个脏页立即刷新到磁盘。(默认是1024) innodb_flush_method=O_DIRECT                  --控制innodb数据文件,redo文件打开及刷写模式。(建议值是 O_DIRECT innodb_flush_neighbors=0                 --0表示不刷新邻近页,1表示不刷新邻近页。(默认值) innodb_use_native_aio=ON                --开启异步IO功能 innodb_io_capacity =200                       --每秒写入多少iops。默认是200,一般机械盘可以是2000,ssd可以是4000。 innodb_io_capacity_max=200                --最大写入多少iops。 innodb_doublewrite=ON                     --开启两次写功能。 innodb_flush_log_at_trx_commit=1    --事物提交redo log刷新到磁盘。0  日志刷新到缓存,1   日志直接刷新到磁盘,2  日志刷新到操作系统缓存。 innodb_support_xa=ON                 --开启分布式事物。 innodb_file_per_table=ON             --每张表单独的表空间。 innodb_numa_interleave=OFF       --开启numa功能。 2.sql优化参数 show global status like '%sort%';        --可以在数据库状态值查看当前设置的值是否合理。 show global status  like '%tmp%';  innodb_sort_buffer_size=1048576     --sql排序缓存大小,默认是1M。(order by语句使用) tmp_table_size=16777216     --临时表大小。 (group by打开的表) table_open_cache=2000        --打开临时表缓存。 max_tmp_tables=32               --打开临时表个数 join_buffer_size=262144        --sql连接查询缓存 query_cache_size=1048576   --查询缓存大小 read_buffer_size=131072      --读缓存区,将表顺序扫描读到一个缓存区。

3.重做日志优化

innodb_log_file_size=50331648     -- 默认值是50M。一般可以设置为4G以上,如果值太小会导致频繁日志文件替换影响性能。

innodb_log_files_in_group=2         --重做日志个数。

innodb_log_buffer_size=16777216    --重做日志缓存,默认16M。

innodb_log_group_home_dir=./        --重做日志路径。

innodb_log_compressed_pages=ON    --重做日志开启压缩。

4.二进制日志优化

log_bin=OFF          -- 默认值是OFF(关闭),是否写入binlog文件。

binlog_format=ROW     -- 二进制复制的格式,默认值是statement(语句复制)。statement是记录sql语句,从库直接回放sql就可以。row是记录修改的数据,从库直接同步数据就可以。mixed混合复制默认是语句复制,比如random,now动态数据(函数)采用行复制。

binlog_rows_query_log_events=OFF    --默认是OFF,在binlog中记录sql语句。建议值是ON。

log_bin_basename=路径        --二进制文件存放路径。

log_bin_index=路径                 --二进制日志文件产生的索引文件,内容是binlog的文件名。

max_binlog_cache_size=1024    --默认值是1M。写入二进制文件时缓存,参考值查看状态信息(Binlog_cache_disk_use,Binlog_cache_use)

max_binlog_size=1048576     --默认大小是1G。可以适当调大。

expire_logs_days=0                --默认值是0。表示不自动删除,生产环境需要设置其值。 sync_binlog=1                         --事物提交立即刷新到binlog文件。log_slave_updates=ON           --默认值是OFF,在从库也写binlog日志。(用于从库)read_only=OFF                 --默认值是OFF,从库是只读不能写入,建议值是OFF。(用于从库)relay_log_recovery=ON    --默认值是OFF,IO线程高可用,建议值是ON。(用于从库)relay_log_info_repository=FILE    --默认值是FILE,sql线程高可用,建议值是TABLE。(用于从库)slave_parallel_type=DATABASE    --默认是基于数据库并行复制,建议值是logical_clock基于事物组并行复制。slave_parallel_workers=0     --默认值是0,建议值是CPU的个数,有多少个sql线程回放sql语句。thread_handling=one-thread-per-connection    --建议值是pool-of-threadsthread_cache_size=9           --线程池缓存大小。 gtid_mode=on      --默认是关闭,开启GTID事物全局id。一般用于主从复制enforce-gtid-consistency=1innodb_purge_threads=4      --purge线程个数,默认值是4。purge线程主要是删除记录和undo log数据。innodb_read_io_threads=4   --读线程个数。innodb_write_io_threads=4   --写入线程个数。 5.错误和通用日志log_error=路径            --记录数据库启动关闭和运行的状态。log_output=FILE         --日志输出格式。log_queries_not_using_indexes=OFF    --没有使用索引的SQL记录到日志。slow_query_log=OFF     --慢查询日志,记录比较慢的SQL语句。slow_query_log_file=路径         --慢查询日志记录路径。long_query_time=10.000000    --慢查询日志记录时间。general_log=OFF             --通用日志。general_log_file=路径      --通用日志记录路径。 6.其他参数优化 open_files_limit=5000         --文件打开数。 connect_timeout=10           --客户端连接超时。 max_connections=151        --最大连接数 innodb_encrypt_online_alter_logs=OFF      -- 开启DDL在线定义。 innodb_online_alter_log_max_size=134217728     --此参数默认为关闭,大小为128M。DDL在线定义所产生的日志大小。 innodb_change_buffering=all     --提高辅助索引的插入性能。innodb_adaptive_hash_index=ON     --开启自适应哈希索引。(哈希索引是自己创建不是人工创建的,不占磁盘空间,索引是存在内存中的,where字段必须是等值=) innodb_adaptive_hash_index_parts=8    #自适应哈希分片设置

相关推荐