- 查询缓存信息 Default = 0 or OFF | Values = 0 or OFF/1 or ON/2 or DEMAND
SHOW VARIABLES like 'query_cache_type';
- 0 or OFF 默认关闭不会从查询缓存中缓存结果或从中检索结果,但不会释放查询缓存的缓冲区,除非 query_cache_size 设置为 0
- 1 or ON 缓存所有可缓存的查询结果,以SELECT SQL_NO_CACHE 开头的查询结果除外
- 2 or DEMAND 按需缓存结果仅适用于以SELECT SQL_Cache开头的可缓存查询
- 查看查询缓存大小 Default = 1048576/Bytes = 1M
SHOW VARIABLES like 'query_cache_size';
- 查询InnoDB缓存池大小 Default = 1048576/Bytes = 128M
SHOW VARIABLES like 'innodb_buffer_pool_size';
- Redo Log写入磁盘配置 Default = 1 | Values = 0/1/2
SHOW VARIABLES like 'innodb_flush_log_at_trx_commit';
- 0 每一秒写入一次日志并将其刷新到磁盘,未刷新日志的事务可能会在奔溃中丢失
- 1 每次提交事务时,redo 日志都会写入并刷新到磁盘
- 2 在每次事务提交后写入日志,并每秒刷新一次到磁盘;未刷新日志的事务可能会在崩溃中丢失
- Bin Log写入磁盘配置 Default = 0 | Values = 0/1/N
SHOW VARIABLES like 'sync_binlog';
- 0 禁用MySQL将二进制日志到磁盘同步,而是依靠 OS 不时地将二进制日志刷新到磁盘上;发生宕机会丢失 OS 缓存的二进制日志
- 1 每次提交事务之前将二进制日志同步到磁盘,这是最安全的设置,但是由于磁盘写入次数增加会对性能产生影响;如果写入了二进制日志,还未提交事务发生了宕机,二进制日志中缺少的事务将仅处于准备状态 (这点不太清楚)会有自动恢复例程回滚事务,从而确保二进制日志不会丢失任何事务
- N 在进行 n 次事务提交后,收集的二进制日志将同步到磁盘,较高的值可以提高性能,但会增加数据丢失的风险
为了InnoDB与事务设置中获得最大的持久性和一致性,推荐使用以下设置
sync_binlog=1 / innodb_flush_log_at_trx_commit=1
- 是否启用二进制日志 Default = OFF | Values = ON/OFF
SHOW VARIABLES like 'log_bin';
二进制日志常用于恢复数据和主从复制
- InnoDB关闭模式 Default = 1 | Values = 0/1/2
SHOW VARIABLES like 'innodb_fast_shutdown';
- 0 InnoDB会在关闭之前进行缓慢关闭、完全清除和更改缓冲区合并
- 1 InnoDB在关机时跳过这些操作,这个过程称为快速关机
- 2 InnoDB会刷新日志并冷关机,不会丢失已提交的事务,但崩溃恢复操作会使下一次启动花费更长时间