mysql8怎么设置参数 mysql80怎么用( 六 )


innodb_log_file_size = 32M
# 此参数确定数据日志文件的大?。?更大的设置可以提高性能,但也会增加恢复故障数据库所需的时间
innodb_log_files_in_group = 3
# 为提高性能,MySQL可以以循环方式将日志文件写到多个文件 。推荐设置为3
innodb_max_dirty_pages_pct = 90
# innodb主线程刷新缓存池中的数据,使脏数据比例小于90%
innodb_lock_wait_timeout = 120
# InnoDB事务在被回滚之前可以等待一个锁定的超时秒数 。InnoDB在它自己的锁定表中自动检测事务死锁并且回滚事务 。InnoDB用LOCK TABLES语句注意到锁定设置 。默认值是50秒
bulk_insert_buffer_size = 8M
# 批量插入缓存大?。?这个参数是针对MyISAM存储引擎来说的 。适用于在一次性插入100-1000+条记录时,提高效率 。默认值是8M 。可以针对数据量的大小 , 翻倍增加 。
myisam_sort_buffer_size = 8M
# MyISAM设置恢复表之时使用的缓冲区的尺寸 , 当在REPAIR TABLE或用CREATE INDEX创建索引或ALTER TABLE过程中排序 MyISAM索引分配的缓冲区
myisam_max_sort_file_size = 10G
# 如果临时文件会变得超过索引,不要使用快速排序索引方法来创建一个索引 。注释:这个参数以字节的形式给出
myisam_repair_threads = 1
# 如果该值大于1,在Repair by sorting过程中并行创建MyISAM表索引(每个索引在自己的线程内)
interactive_timeout = 28800
# 服务器关闭交互式连接前等待活动的秒数 。交互式客户端定义为在mysql_real_connect()中使用CLIENT_INTERACTIVE选项的客户端 。默认值:28800秒(8小时)
wait_timeout = 28800
# 服务器关闭非交互连接之前等待活动的秒数 。在线程启动时,根据全局wait_timeout值或全局interactive_timeout值初始化会话wait_timeout值 , 
# 取决于客户端类型(由mysql_real_connect()的连接选项CLIENT_INTERACTIVE定义) 。参数默认值:28800秒(8小时)
# MySQL服务器所支持的最大连接数是有上限的,因为每个连接的建立都会消耗内存,因此我们希望客户端在连接到MySQL Server处理完相应的操作后,
# 应该断开连接并释放占用的内存 。如果你的MySQL Server有大量的闲置连接 , 他们不仅会白白消耗内存,而且如果连接一直在累加而不断开,
# 最终肯定会达到MySQL Server的连接上限数 , 这会报'too many connections'的错误 。对于wait_timeout的值设定,应该根据系统的运行情况来判断 。
# 在系统运行一段时间后,可以通过show processlist命令查看当前系统的连接状态,如果发现有大量的sleep状态的连接进程,则说明该参数设置的过大,
# 可以进行适当的调整小些 。要同时设置interactive_timeout和wait_timeout才会生效 。
[mysqldump]
quick
max_allowed_packet = 16M #服务器发送和接受的最大包长度
[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
read_buffer = 4M
write_buffer = 4M
mysql怎么设置table_cache sort_buffer参数看起来确实 table cache 没有命中,也就是说 table cache 是针对于线程的,每个线程有自己的缓存 , 只缓存本线程的表结构定义 。不过我们发现,strace 中没有关于表结构文件的 open 操作(只有 stat 操作,定位表结构文件是否存在) , 也就是说 table cache 不命中,不一定需要读取表结构文件 。这种感觉好像是:在不命中 table cache 时,命中了另外一个表结构缓存 。这个缓存就是之后我们会介绍的 table_definition_cache 。
??运维建议:
我们读一下 MySQL 的文档,关于 table_open_cache 的建议值公式:建议值 = 最大并发数 * join 语句涉及的表的最大个数 。

推荐阅读