This commit is contained in:
2021-11-14 15:52:46 +08:00
parent 915c231124
commit 1e344dc204
112 changed files with 1039 additions and 1039 deletions

View File

@@ -7,7 +7,7 @@ tags: ["cache", "mysql", "缓存"]
categories: ["database"]
---
# MySQL 超时
## MySQL 超时
- connect_timeout 与客户端连接建立超时默认10秒
- interactive_timeout 交互终端超时断开默认28800秒
- wait_timeout 非交互终端超时断开默认28800秒
@@ -17,7 +17,7 @@ categories: ["database"]
- innodb_rollback_on_timeout 超时后回滚整个事务操作默认OFF
- slave_net_timeout 从库读取binlog失败后等待指定秒后重新连接主库默认60秒
# 查询缓存配置
## 查询缓存配置
** MySQL 8.0 已关闭该功能 **
- have_query_cache 是否支持查询缓存默认yes
- query_cache_limit select结果集大于该值时不缓存默认1048576
@@ -31,7 +31,7 @@ categories: ["database"]
- 0(OFF) 锁表后,该表的查询缓存依旧有效,默认
- 1(ON) 锁表后,该表的查询缓存失效
# 查询缓存状态
## 查询缓存状态
** MySQL 8.0 已关闭该功能 **
- Qcache_free_blocks 查询缓存中的内存碎片数量
- 碎片过多表明查询结果集较小可适当减小query_cache_min_res_unit
@@ -51,40 +51,40 @@ categories: ["database"]
- Com_select 执行过的select语句数量
- 查询缓存的命中率 = Qcache_hits / Com_select * 100%
# 排序缓存配置
## 排序缓存配置
- sort_buffer_size 排序缓存大小默认262144
- max_length_for_sort_data 排序sql中的全部字段长度总和小于该值时使用优化排序方式否则使用常规排序方式默认1024
- [参考](https://www.cnblogs.com/moss_tan_jun/p/6021822.html)
- max_sort_length 使用列的前(默认1024)个字节排序
- innodb_sort_buffer_size InnoDB用于创建/重建索引的排序缓存默认1048576
# 排序缓存状态
## 排序缓存状态
- Sort_merge_passes 使用临时文件完成排序操作的次数
- 增加sort_buffer_size可减少使用临时文件排序的次数
- Sort_range 使用范围排序的次数
- Sort_rows 已经排序的记录行数
- Sort_scan 通过全表扫描完成排序的次数
# join 连接缓存
## join 连接缓存
- join_buffer_size 两表join但不能使用索引时为每张表分配的连接缓存默认262144
- 尽量实现索引join
# 表/表结构 缓存配置
## 表/表结构 缓存配置
- table_open_cache 可以缓存表和视图的数量
- table_defination_cache 可以存储的表结构数量
- open_files_limit 可以打开的文件数量
# InnoDB 重做日志缓存配置
## InnoDB 重做日志缓存配置
- innodb_log_buffer_size 事务提交前,把重做日志写入缓存中
- innodb_flush_log_at_trx_commit
- 0 每隔一秒,把日志缓存写到日志文件,并刷新到磁盘
- 1 每次提交时,把日志缓存写到日志文件,并刷新到磁盘
- 2 每次提交是,把日志缓存写到日志文件,每隔一秒刷新到磁盘
# InnoDB 预读配置
## InnoDB 预读配置
- innodb_read_ahead_threshold 预读的前后数据库个数
# FLUSH 语句
## FLUSH 语句
- HOSTS 清空主机表
- LOGS 关闭binlog文件创建新编号binlog文件
- PRIVILEGES 从数据库授权表中重新装载权限到缓存中