加入收藏 | 设为首页 | 会员中心 | 我要投稿 驾考网 (https://www.jiakaowang.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

【MySQL】考虑的参数

发布时间:2023-05-24 13:34:40 所属栏目:MySql教程 来源:
导读:可用性
back_log
如果同一时间连接的线程超过了max_connections,超出的部分并不会立即拒绝连接,而是被放入到一个等待主线程处理的堆栈中,超出back_log数量的连接将会直接被拒绝。

max_connections
有些时候
可用性
back_log
如果同一时间连接的线程超过了max_connections,超出的部分并不会立即拒绝连接,而是被放入到一个等待主线程处理的堆栈中,超出back_log数量的连接将会直接被拒绝。

max_connections
有些时候实例被大量连接堵住,新的进不来。这个时候一般不用调大这个参数,而是考虑看看风暴连接产生的原因,再看看有没有长期睡眠状态的连接,杀掉这些连接

wait_timeout
这个对应上面睡眠连接的最大时长,一般把这个缩短会可以比较好的解决上面的问题,但是也要实际业务情况。不能贸然修改的很小

max_user_connection
单用户同时可以连接的最大线程数

innodb_file_per_table
每个表单独存放为一个文件,这个对备份或者恢复都比较方便,一定要开启

安全
skip_name_resolve
生产环境中使用纯IP连接时,启用此参数或许可以减少域名解析的开销或者延时。而且这种情况下,使用域名或者主机名创建的用户可能无法连接

性能
no-auto-rehash
mysql客户端连接时不主动获取实例的库表等元信息,获取库表元信息是个比较慢,而且有开销和阻塞风险的操作

innodb_io_capacity
告诉MysqL实例本机硬盘的性能情况,实例会根据此参数调整刷盘的某些策略

innodb_max_dirty_pages_pct
脏页比,用于控制未落盘数据在IBP中的比例,如果DML语句比较频繁的话,这里适当提高,可以某种程度上提高性能,毕竟刷磁盘是个很慢的操作

innodb_lock_wait_timeout
锁等待超时,这个可以适当减小,以避免垃圾事务的长时间持有数据锁,阻塞其他请求线程

innodb_rollback_on_timeout
锁等待超时后是否是否回滚掉整个事务,这里建议开启,默认只回滚掉事务中的最后一条语句,我认为这样可以减少锁争用。

internal_tmp_disk_storage_engine
内部临时表的类型,这里建议制定为InnoDB,这个参数可以覆盖掉默认引擎的对临时表的染色。

innodb_stats_on_Metadata
建议关掉,关掉之后不对内部元数据表的表信息进行统计收集。当然了,隐含条件是内部元数据信息表不落盘。

innodb_log_file_size
这个是指代内部重做日志文件的大小,如果对实例重启的时间有要求,那么这个文件要设置的小一点。

IBP相关
这个就老生常谈了,就是IBP大小,IBP实例,还有UPDATE_BUFFER,INSERT_BUFFER一类的,适当调大就可以了

innodb_autoinc_lock_mode
自增锁模式,对于load data(包括:INSERT … SELECT, REPLACE … SELECT)场景下会使用自增表锁,这样会则可能导致应用在并发导入数据出现死锁。建议将参数设置改为2,则表示所有情况插入都使用轻量级别的mutex锁(只针对row模式),这样就可以避免auto_inc的死锁,同时在INSERT … SELECT 的场景下会提升很大的性能(注意该参数设置为2,binlog的格式需要设置为row)。
 

(编辑:驾考网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章