[mysql]
#设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port=3306
#设置mysql的安装目录
basedir=C:/workspace/soft/mysql-5.7.44-winx64/mysql-5.7.44-winx64
#设置mysql数据库的数据的存放目录
datadir=C:/workspace/soft/mysql-5.7.44-winx64/mysql-5.7.44-winx64/data
#允许最大连接数
max_connections=200
#服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
#创建新表时将使用的默认存储引擎
explicit_defaults_for_timestamp=true
default-storage-engine=INNODB
log-error=C:/workspace/soft/mysql-5.7.44-winx64/mysql-5.7.44-winx64/log/mysqld.log
bulk_insert_buffer_size=120M
max_allowed_packet=1M
net_buffer_length=8k
# 设置最大并发连接数
max_connections = 500
# 设置线程缓存大小
thread_cache_size = 20
# 设置 InnoDB 缓冲池大小
innodb_buffer_pool_size = 4G
# 设置 InnoDB 并发线程数
innodb_thread_concurrency = 0
# 设置 InnoDB I/O 容量
innodb_io_capacity = 2000
innodb_io_capacity_max = 4000
增加内存缓冲区: 如果排序操作需要大量的内存,你可以尝试增加 MySQL 的 sort_buffer_size 参数的值。这个参数控制了每个连接所使用的排序缓冲区的大小,适当增加这个值可能会提高排序操作的性能。但是请注意,过大的值可能会导致内存压力过大,应该谨慎调整。
sort_buffer_size = 4M # 适当调整为合理值
使用磁盘临时文件: 如果排序操作涉及到的数据量较大,无法完全放入内存中进行排序,那么 MySQL 将会使用磁盘临时文件来进行排序。可以通过 tmp_table_size 和 max_heap_table_size 参数来控制内存中临时表和堆表的大小,适当增加这些值可以减少磁盘排序的次数。
tmp_table_size = 256M
max_heap_table_size = 256M
User
InnoDB: page_cleaner: 1000ms intended loop took 4682ms. The settings might not be optimal. (flushed=2492 and evicted=0, during the time.)
调整页面清理器参数: 可以通过调整页面清理器的一些参数来优化其性能。例如,innodb_lru_scan_depth 参数可以控制页面清理器一次扫描的页面数量,适当增加这个参数的值可能会提高清理器的效率。
innodb_lru_scan_depth = 1024 # 适当调整为合理值
show processlist;