ITPub博客

首页 > 数据库 > MySQL > Mysql 5.7忧化配置详解

Mysql 5.7忧化配置详解

原创 MySQL 作者:z597011036 时间:2021-05-22 13:18:12 0 删除 编辑

一、客户端参数(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-threads

thread_cache_size=9           --线程池缓存大小。

gtid_mode=on      --默认是关闭,开启GTID事物全局id。一般用于主从复制

enforce-gtid-consistency=1

innodb_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    #自适应哈希分片设置

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25854343/viewspace-2769197/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-03-31

  • 博文量
    79
  • 访问量
    486683