mysql 开发进阶篇系列 20 MySQL Server(innodb_lock_wait_timeout,innodb_support_xa,innodb _log_*)
1. innodb_lock_wait_timeout
mysql 可以自动监测行锁导致的死锁并进行相应的处理,但是对于表锁导致的死锁不能自动监测,所以该参数主要用于,出现类似情况的时候等待指定的时间后回滚。系统默认值是50秒。用户可以根据业务自行设置。生产环境不推荐使用过大的 innodb_lock_wait_timeout 参数值。
-- 查看事务超时时间
SHOW VARIABLES LIKE 'innodb_lock_wait_timeout';
也可以对当前会话进行超时设置如: set innodb_lock_wait_timeout=1000。关于产生死锁的原因,如何查看分析死锁问题, 如何优化尽量避免死锁,请查看"mysql 开发进阶篇 锁问题系列"。
2. innodb_support_xa
通过该参数设置,是否支持分布式事务。默认值是ON或者1,表示支持分布式事务。
分布事事务分两类:
(1)是外部xa事务(支持多实例分布式事务)。
(2)是支持内部xa事务(支持binlog和redo_log之间数据一致性)。
如果关闭这个参数,据前辈们说可能会影响到:1是主从复制binlog与redo_log不一致,2是binlog与redo_log事务顺序不一致性。
-- 查看是否支持分布式事务
SHOW VARIABLES LIKE 'innodb_support_xa';
3. innodb _log_buffer_size
这个参数是指日志缓存的大小。默认的设置在中等强度写入负载以及较短事务的情况下,一般都可以满足服务器的性能要求。如果存在更新操作峰值或者负载较大,就应该考虑加大它的值。 如果值设置太高,可能会浪费内存,因为它每秒都会刷新一次,因此无需设置超过1秒所需的内存空间(理解是每1秒刷新后,日志缓存会清空)。通常设置为8~16MB就足够了。系统默认是16M。
-- 查看日志缓存空间大小
SHOW VARIABLES LIKE 'innodb_log_buffer_size';
16777216.0/1024.0/1024.0=16M
4. innodb_log_file_size
这个参数是一个日志组(log group)中每个日志文件的大小,也叫事务日志文件大小。此参数在高写入负载尤其是大数据集的情况下很重要.这个值越大则性能相对越高,但副作用是当系统发生灾难时恢复时间会加大。系统默认是48M。
(1) 小日志文件使写入速度更慢,崩溃恢复速度更快。原因是由于事务日志相当于一个写缓冲,而小日志文件会很快的被写满,这时候就需要频繁地刷新到硬盘,速度就慢了。如果产生大量的写操作,会增加checkpoint写的次数,如果不能足够快地刷新数据,那么写性能将会降低,。相反文件空间大,在刷新操作发生之前给你足够的空间来使用。
(2) 大日志文件使写入更快,崩溃恢复速度更慢。
-- 查看每个日志文件的大小
SHOW VARIABLES LIKE 'innodb_log_file_size';
268435456.0/1024.0/1024.0=256M
5. innodb_log_compressed_pages
这个参数是指:日志文件页存储压缩。系统默认是ON , 将减少redo log的写入量。
6. innodb_log_checksums
这个参数是指:写入redo log到文件之前,redo log的每一个block都需要加上checksum校验位,以防止apply损坏redo log。
7. innodb_log_write_ahead_size
这个参数是指: redo log写前的块大小。系统默认是8192字节。
8. innodb_log_files_in_group
这个参数是指:该变量控制日志文件数。默认值为3。日志是以顺序的方式写入。结合innodb_buffer_pool_size设置其大小。一般不用设置。
9. innodb_log_group_home_dir
这个参数是指:日志组所在的路径。
-- 所有日志参数如下
SHOW VARIABLES LIKE 'innodb_log%';
mysql 开发进阶篇系列 20 MySQL Server(innodb_lock_wait_timeout,innodb_support_xa,innodb _log_*)的更多相关文章
- mysql 开发进阶篇系列 16 MySQL Server(myisam key_buffer)
一.概述 mysql 提供了很多参数来进行服务器的设置,当服务第一次启动的时候,所有启动参数值都是系统默认的.这些参数在很多生产环境下并不能满足实际的应用需求.在这个系列中涉及到了liunx 服务器, ...
- mysql 开发进阶篇系列 41 mysql日志之慢查询日志
一.概述 慢查询日志记录了所有的超过sql语句( 超时参数long_query_time单位 秒),获得表锁定的时间不算作执行时间.慢日志默认写入到参数datadir(数据目录)指定的路径下.默认文件 ...
- mysql 开发进阶篇系列 38 mysql日志之错误日志log-error
一.mysql日志概述 在mysql中,有4种不同的日志,分别是错误日志,二进制日志(binlog日志),查询日志,慢查询日志.这此日志记录着数据库在不同方面的踪迹(区别sql server里只有er ...
- mysql 开发进阶篇系列 17 MySQL Server(key_buffer与table_cache)
一.key_buffer 上一篇了解key_buffer设置,key_buffer_size指定了索引缓冲区的大小,它决定索引处理的速度,尤其是索引读的速度.通过检查状态值Key_read_reque ...
- mysql 开发进阶篇系列 19 MySQL Server(innodb_flush_log_at_trx_commit与sync_binlog)
一. innodb_flush_log_at_trx_commit 这个参数名称有个log,一看就是与日志有关.是指:用来控制缓冲区(log buffer)中的数据写入到日志文件(log file), ...
- mysql 开发进阶篇系列 18 MySQL Server(innodb_buffer_pool_size)
从这篇开始,讲innodb存储引擎中,对于几个重要的服务器参数配置.这些参数以innodb_xx 开头. 1. innodb_buffer_pool_size的设置 这个参数定义了innodb存储引擎 ...
- mysql 开发进阶篇系列 39 mysql日志之二进制日志(binlog)
一.概述 二进制日志(binlog)记录了所有的DDL(数据定义语言)语句和DML(数据操纵语言)语句,但是不包括数据查询语句, 语句以"事件"的形式保存,它描述了数据的更改过程, ...
- mysql 开发进阶篇系列 40 mysql日志之二进制日志下以及查询日志
一.binlog 二进制其它选项 在二进制日志记录了数据的变化过程,对于数据的完整性和安全性起着非常重要作用.在mysql中还提供了一些其它参数选项,来进行更小粒度的管理. 1.1 binlog-do ...
- mysql 开发进阶篇系列 47 物理备份与恢复(xtrabackup 的完全备份恢复,恢复后重启失败总结)
一. 完全备份恢复说明 xtrabackup二进制文件有一个xtrabackup --copy-back选项,它将备份复制到服务器的datadir目录下.下面是通过 --target-dir 指定完全 ...
随机推荐
- 洛谷[LnOI2019]长脖子鹿省选模拟赛 简要题解
传送门 听说比赛的时候T4T4T4标程锅了??? WTF换我时间我要写T3啊 于是在T4T4T4调半天无果的情况下260pts260pts260pts收场真的是tcltcltcl. T1 快速多项式变 ...
- shiro简单配置 (写的不错 收藏一下)
抄袭的连接:https://blog.csdn.net/clj198606061111/article/details/24185023 注:这里只介绍spring配置模式. 因为官方例子虽然中有更加 ...
- Dev gridcontrol 添加多列按钮
gridcontrol中添加按钮的步骤: 1. 把列的ColumnEdit属性设置为RepositoryItemButtonEdit 2. 把TextEditStyle属性设置为HideTextEdi ...
- Java List中迭代器遍历
在java中,List接口从Collection接口中继承了 iterator()函数,返回值是一个T类型的迭代器(泛型),T是List中元素的类型 public class TestListAndI ...
- 数据库 的几种链接 join
直接demo,懒的同学可以看看效果 两个表的数据 join和inner join一样 full join报错,可有大神知道原因?
- 使用 vs code 搭建vue项目(一)
1. 配置环境 1.1. 安装nodejs,下载地址:https://nodejs.org/en/download/. 步骤-..安装完成后,输入node-v,提示如下,则安装完成. 1.2. 安装v ...
- CentOS 6下升级Python版本
CentOS6.8默认的python版本是2.6,而现在好多python组件开始只支持2.7以上的版本,比如说我今天遇到的pip install pysqlite,升级python版本是一个痛苦但又常 ...
- spring扩展点总结
NamespaceHandler 通过自定义的NamespaceHandler,配合BeanDefinitionParser,可以完成自定义Bean的组装操作,对于BeanDefinition的数据结 ...
- eslint 的 env 配置是干嘛使的?
这笔修改体现了 env 和 global 的关系: https://github.com/g8up/youDaoDict/commit/8b05616f 官方文档表述: https://eslint. ...
- window下载android 最新源码
https://blog.csdn.net/jason0539/article/details/24010633 2017方法 ok https://www.cnblogs.com/zhangting ...