MySQL5.7数据库优化模板

8核16GMySQL数据库优化模板

[client]
#password   = your_password
port        = 3306
socket      = /tmp/mysql.sock

[mysqld]
port        = 3306
socket      = /tmp/mysql.sock
datadir     = /usr/local/mysql/var
skip-external-locking
# MyISAM
key_buffer_size = 64M  # MyISAM表索引缓冲区
myisam_sort_buffer_size = 128M  # MyISAM表索引创建缓冲区
# 缓冲区和缓存设置
max_allowed_packet = 128M  # 允许的最大数据包大小
table_open_cache = 4096  # 能打开的表数量
sort_buffer_size = 4M  # 排序操作分配的内存
net_buffer_length = 16K  # 网络通信缓冲区大小
read_buffer_size = 4M  # 顺序扫描缓冲区
read_rnd_buffer_size = 8M  # 随机读操作缓冲区
thread_cache_size = 256  # 缓存的线程数量
query_cache_size = 0  # 查询缓存大小(MySQL 8.0已废弃)
tmp_table_size = 256M  # 内存临时表的最大大小
performance_schema_max_table_instances = 6000  # performance_schema表实例最大数量

# 慢查询日志设置
slow_query_log = ON
slow_query_log_file = /usr/local/mysql/var/mysql_slow.log
long_query_time = 1
log_queries_not_using_indexes = 1  # 记录未使用索引的查询

# 其他设置
explicit_defaults_for_timestamp = true  # 显式默认时间戳
max_connections = 50000  # 最大连接数
max_connect_errors = 500000  # 最大连接错误数
open_files_limit = 65535  # 打开文件的限制

# 二进制日志设置
log-bin = mysql-bin
binlog_format = mixed
server-id = 1
expire_logs_days = 10	# 二进制日志保留天数
early-plugin-load = ""
log_error = /usr/local/mysql/var/mysql_error.log  # 错误日志文件
general_log = 0  # 一般查询日志。设置为0表示禁用,设置为1表示启用。
general_log_file = /usr/local/mysql/var/mysql_general.log  # 一般查询日志文件

# InnoDB设置
default_storage_engine = InnoDB  # 默认存储引擎
innodb_data_home_dir = /usr/local/mysql/var  # InnoDB数据文件目录
innodb_data_file_path = ibdata1:10M:autoextend  # InnoDB数据文件路径
innodb_log_group_home_dir = /usr/local/mysql/var  # InnoDB日志组目录
innodb_buffer_pool_size = 12G  # InnoDB缓冲池大小
innodb_buffer_pool_instances = 8  # 缓冲池实例数,以减少内存争用和提高并发性能。一般为内存的一半以上,但不应超过CPU过多
innodb_log_file_size = 1024M  # 日志文件大小
innodb_log_buffer_size = 32M  # 日志缓冲区大小
innodb_flush_log_at_trx_commit = 2 # 设置InnoDB事务日志的刷新行为,1表示每次事务提交时写入磁盘,2表示每秒刷新一次
innodb_lock_wait_timeout = 20  # 锁等待超时时间(秒)
innodb_thread_concurrency = 0  # InnoDB线程并发数。表示自动调整,设置的话一般为CPU的两倍
# innodb_flush_method = O_DIRECT  # 直接IO,减少文件系统缓存压力。如果系统使用的是高性能的 SSD,且业务对 I/O 性能要求较高,建议尝试使用 O_DIRECT。
#innodb_file_per_table = 1  # 每个表使用单独的表空间文件。可以带来更灵活的管理、更高的并发性能和更高效的空间利用率,但同时也会增加文件系统管理的复杂性。
innodb_io_capacity = 2000  # 指定InnoDB每秒可以处理的I/O操作数量,用于限制后台I/O操作速率。SSD,可以设置为2000或更高
innodb_io_capacity_max = 4000  # 指定InnoDB在高负载时允许的最大I/O操作数量,用于突发性I/O操作。通常是innodb_io_capacity的2倍或更多。
innodb_flush_neighbors = 1  # 在SSD上禁用邻近页刷新,提高性能。在HDD上可以保持默认值1。
innodb_purge_threads = 4  # 指定用于清理已删除记录的后台线程数,加速清理过程。可以设置为4或更多。
innodb_read_io_threads = 8  # 指定用于读取操作的后台I/O线程数,提高并发读取性能。4到8,具体取决于硬件和负载。
innodb_write_io_threads = 8  # 指定用于写入操作的后台I/O线程数,提高并发写入性能。4到8,具体取决于硬件和负载。
# 启用表空间压缩(如果需要)
innodb_file_per_table = 1
innodb_compression_level = 6
# 启用查询性能分析
performance_schema = ON

# 查询优化
join_buffer_size = 4M  # 联接操作的缓冲区大小
query_cache_type = 0  # 禁用查询缓存
query_cache_size = 0  # 查询缓存大小
query_cache_limit = 1M  # 单个查询的最大缓存大小

# 字符集设置
character-set-server = utf8mb4  # 默认字符集
collation-server = utf8mb4_general_ci  # 默认排序规则

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 4M
read_buffer_size = 4M
write_buffer_size = 2M

[mysqlhotcopy]
interactive-timeout

4核8GMySQL数据库优化模板

[client]
#password   = your_password
port        = 3306
socket      = /tmp/mysql.sock

[mysqld]
port        = 3306
socket      = /tmp/mysql.sock
datadir     = /usr/local/mysql/var
skip-external-locking

# MyISAM
key_buffer_size         = 64M  # 缓存索引块的大小
myisam_sort_buffer_size = 128M  # MyISAM索引重建时使用的排序缓冲区大小

# 缓冲区和缓存配置
max_allowed_packet      = 64M   # 单个包的最大大小
table_open_cache        = 2048  # 打开的表的缓存数量
sort_buffer_size        = 4M    # 排序操作的缓冲区大小
net_buffer_length       = 16K   # 网络通信缓冲区大小
read_buffer_size        = 2M    # 顺序扫描的缓冲区大小
read_rnd_buffer_size    = 16M   # 随机读取缓冲区大小
thread_cache_size       = 64    # 缓存的线程数量
query_cache_size        = 0     # 查询缓存大小,不推荐使用查询缓存
tmp_table_size          = 64M   # 临时表的最大大小
performance_schema_max_table_instances = 1000
# 慢查询日志
slow_query_log          = ON
slow_query_log_file     = /usr/local/mysql/var/mysql_slow.log
long_query_time         = 1     # 慢查询时间阈值

# 连接
max_connections         = 5000  # 最大连接数
max_connect_errors      = 10000  # 允许的最大连接错误数
open_files_limit        = 65535 # 打开文件的最大数量

# 二进制日志
log-bin                 = mysql-bin
binlog_format           = mixed
server-id               = 1
expire_logs_days        = 10    # 日志过期时间

# 存储引擎和InnoDB配置
default_storage_engine          = InnoDB
innodb_data_home_dir            = /usr/local/mysql/var
innodb_data_file_path           = ibdata1:10M:autoextend
innodb_log_group_home_dir       = /usr/local/mysql/var
innodb_buffer_pool_size         = 6G   # 缓冲池大小
innodb_log_file_size            = 512M # 日志文件大小
innodb_log_buffer_size          = 16M  # 日志缓冲区大小
innodb_flush_log_at_trx_commit  = 2    # 日志刷新策略,性能优先
innodb_lock_wait_timeout        = 50   # 锁等待超时时间
innodb_thread_concurrency       = 8    # 最大并发线程数

# 一些优化选项
join_buffer_size                = 4M   # 联接操作的缓冲区大小
innodb_flush_method             = O_DIRECT # 直接IO,减少文件系统缓存压力
innodb_file_per_table           = 1    # 每个表使用单独的表空间文件
innodb_stats_on_metadata        = 0    # 禁用统计信息自动更新
query_cache_type                = 0    # 禁用查询缓存

innodb_io_capacity = 1000  
innodb_io_capacity_max = 2000  
innodb_flush_neighbors = 0  
innodb_purge_threads = 2  
innodb_read_io_threads = 4  
innodb_write_io_threads = 4  

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 4M
read_buffer_size = 4M
write_buffer_size = 2M

[mysqlhotcopy]
interactive-timeout

16核32GMySQL数据库优化模板

[client]
#password   = your_password
port        = 3306
socket      = /tmp/mysql.sock

[mysqld]
port        = 3306
socket      = /tmp/mysql.sock
datadir     = /usr/local/mysql/var
skip-external-locking

# MyISAM
key_buffer_size = 128M  # MyISAM表索引缓冲区
myisam_sort_buffer_size = 256M  # MyISAM表索引创建缓冲区

# 缓冲区和缓存设置
max_allowed_packet = 128M  # 允许的最大数据包大小
table_open_cache = 8192  # 能打开的表数量
sort_buffer_size = 8M  # 排序操作分配的内存
net_buffer_length = 16K  # 网络通信缓冲区大小
read_buffer_size = 8M  # 顺序扫描缓冲区
read_rnd_buffer_size = 16M  # 随机读操作缓冲区
thread_cache_size = 512  # 缓存的线程数量
query_cache_size = 0  # 查询缓存大小(MySQL 8.0已废弃)
tmp_table_size = 512M  # 内存临时表的最大大小
performance_schema_max_table_instances = 10000  # performance_schema表实例最大数量

# 慢查询日志设置
slow_query_log = ON
slow_query_log_file = /usr/local/mysql/var/mysql_slow.log
long_query_time = 1
#log_queries_not_using_indexes = 1  # 记录未使用索引的查询

# 其他设置
explicit_defaults_for_timestamp = true  # 显式默认时间戳
max_connections = 80000  # 最大连接数
max_connect_errors = 600000  # 最大连接错误数
open_files_limit = 65535  # 打开文件的限制

# 二进制日志设置
log-bin = mysql-bin
binlog_format = mixed
server-id = 1
expire_logs_days = 10  # 二进制日志保留天数
early-plugin-load = ""
log_error = /usr/local/mysql/var/mysql_error.log  # 错误日志文件
general_log = 0  # 一般查询日志。设置为0表示禁用,设置为1表示启用。
general_log_file = /usr/local/mysql/var/mysql_general.log  # 一般查询日志文件

# InnoDB设置
default_storage_engine = InnoDB  # 默认存储引擎
innodb_data_home_dir = /usr/local/mysql/var  # InnoDB数据文件目录
innodb_data_file_path = ibdata1:10M:autoextend  # InnoDB数据文件路径
innodb_log_group_home_dir = /usr/local/mysql/var  # InnoDB日志组目录
innodb_buffer_pool_size = 24G  # InnoDB缓冲池大小
innodb_buffer_pool_instances = 16  # 缓冲池实例数,以减少内存争用和提高并发性能
innodb_log_file_size = 2G  # 日志文件大小
innodb_log_buffer_size = 64M  # 日志缓冲区大小
innodb_flush_log_at_trx_commit = 2  # 设置InnoDB事务日志的刷新行为,1表示每次事务提交时写入磁盘,2表示每秒刷新一次
innodb_lock_wait_timeout = 20  # 锁等待超时时间(秒)
innodb_thread_concurrency = 0  # InnoDB线程并发数。表示自动调整
innodb_flush_method = O_DIRECT  # 直接IO,减少文件系统缓存压力
innodb_io_capacity = 4000  # 每秒可处理的I/O操作数量
innodb_io_capacity_max = 8000  # 允许的最大I/O操作数量
innodb_flush_neighbors = 0  # 禁用邻近页刷新,提高SSD上的性能
innodb_purge_threads = 4  # 用于清理已删除记录的后台线程数
innodb_read_io_threads = 16  # 读取操作的后台I/O线程数
innodb_write_io_threads = 16  # 写入操作的后台I/O线程数
innodb_file_per_table = 1  # 每个表使用单独的表空间文件
innodb_compression_level = 6  # 启用表空间压缩
performance_schema = ON  # 启用查询性能分析

# 查询优化
join_buffer_size = 8M  # 联接操作的缓冲区大小
query_cache_type = 0  # 禁用查询缓存
query_cache_size = 0  # 查询缓存大小
query_cache_limit = 1M  # 单个查询的最大缓存大小

# 字符集设置
character-set-server = utf8mb4  # 默认字符集
collation-server = utf8mb4_general_ci  # 默认排序规则

sql_mode=strict_trans_tables,no_zero_in_date,error_for_division_by_zero,no_auto_create_user,no_engine_substitution

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 8M  # 排序缓冲区
read_buffer_size = 8M  # 读取缓冲区
write_buffer_size = 4M  # 写入缓冲区

[mysqlhotcopy]
interactive-timeout

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

勾魂皮卡丘

咋滴,打算白嫖啊?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值