mysql bin log
==> /etc/my.cnf
==> log_bin=/var/log/mysql/mysql-bin.log
==> binlog_do_db=your_db

==> 记录所有mysql存储引擎相关的日志
==> 类型无论是STATEMENT,ROW,MIXED其记录的都是关于一个事务的具体操作内容
==> 它属于逻辑日志且只在事务提交前写入磁盘一次
==> 主要用于主从同步数据

innodb redo log
==> 默认位置为mysql的data目录(/var/lib/mysql)
==> 默认文件为ib_logfile0和ib_logfile1(采用交替写入方式进行写入)

==> 事务在进行过程中就不断有redo log写入到重做日志文件中
==> undo log作为事务的回滚处理一同包含在redo log中
==> 在掉电恢复时未执行的
==> 完整事务重新执行事务操作
==> 不完整事务重新执行事务操作同时执行undo处理
==> 从而保证了事务的原子性和持久性

==> redo log记录的是页的物理操作
==> 基本上是顺序写的,所以速度很快
==> 在数据库运行时不需要对redo log的文件进行读取操作

innodb undo log
==> 默认位置为mysql的data目录(/var/lib/mysql)
==> 默认文件为共享表空间文件ibdata1,undo log存放在其中的rollback segment回滚段中
==> 每个rollback segment可以支持1024个事务并发执行,默认有128个rollback segment回滚段

==> undo log用来保证事务的一致性
==> 在事务异常时用于回滚操作
==> undo log会记录与执行操作相反的操作
==> 同时会记录上个版本的数据信息
==> 从而实现多版本并发(MVCC)的机制

==> undo log是逻辑日志根据每行记录进行记录
==> 需要随机读写
==> 事务提交后并不能马上删除undo log及undo log所在页
==> 这是因为可能其他事务需要通过undo log来得到行记录之前的版本
==> 故事务提交时将undo log放入一个链表
==> 是否可以最终删除undo log及undo log所在页由purge线程来判断

innodb 独立表空间配置
==> /etc/my.cnf
==> innodb_file_per_table=ON
==> table.ibd 独立表空间文件仅存储该表的数据、索引和插入BITMAP等信息,其余信息还是存放在默认表空间ibdata1中

mysql lock
==> 意向共享锁可以理解为表锁,每行数据加锁前都要先加意向锁,意向锁锁定成功后才可以对相应的行加锁
==> 共享锁/排他锁为行锁,只有获取到行锁才可以对行进行相应操作

==> innodb对于行的查询使用的都是next-key lock算法,其由(GAP + Record Lock)组合而成
==> 当查询的列是唯一索引时,next-key lock算法将降级为Record Lock从而提高并发性(若索引为辅助索引则算法依然为next-key lock)

 

 

mysql log and lock的更多相关文章

  1. detecting locked tables mysql (locked by LOCK TABLE)

    detecting locked tables mysql (locked by LOCK TABLE) up vote15down votefavorite 7 I would like to kn ...

  2. ubuntu更改mysql配置文件,使其产生日志文件mysql.log

    1.打开mysql配置文件,将68,69行的注释取消掉,保存关闭 sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 2.重启mysql服务 sudo servic ...

  3. 从MySQL slave system lock延迟说开去

    本文主要分析 sql thread中system lock出现的原因,但是笔者并明没有系统的学习过master-slave的代码,这也是2018年的一个目标,2018年我都排满了,悲剧.所以如果有错误 ...

  4. 关于mysql的metadata lock

    昨天晚上上线,却发现一个ddl语句长时间没有生效 查processlist, 发现包括ddl语句在内的众多查询提示 “Waiting for table metadata lock” 唯一没有该提示的 ...

  5. MySql: log 位置

    mysql日志文件位置 登录mysql终端日志文件路径mysql> show variables like 'general_log_file';+------------------+---- ...

  6. mysql log

    mysql binlog3种格式,row,mixed,statement. 解析工作 mysqlbinlog --base64-output=DECODE-ROWS -v mysql-bin.0001 ...

  7. 用MySQL log调试程序

    打开my.ini文件 在[mysqld]的下面加上log = c:/mysql_query.log.txt重启mysql 以后你用可以用editplus查看你运行的sql了,不用在程序里一句句的用lo ...

  8. mysql deadlock、Lock wait timeout解决和分析

    项目上线 线上遇到大量的deadlock 和wait timeout 但是看程序没什么问题 问dba也不能给出很好的解决方案!最终自己去了解mysql锁 以及看mysq锁日志 如果了解mysql锁的机 ...

  9. MySQL 锁(lock与latch)

    一.什么是锁 锁机制用于管理对共享资源的并发访问,它是数据库系统区别于文件系统的一个关键特性. 数据库系统使用锁是为了支持对共享资源的并发访问,提供数据的完整性和一致性. InnoDB存储引擎锁的实现 ...

随机推荐

  1. java实现控件的移动及使用鼠标改变控件大小

    package cn.com.test; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; ...

  2. 20175211 2017-2018-2 《Java程序设计》第六周学习记录

    目录 7.1 内部类 7.2 匿名类 7.3 异常类 断言 参考资料 <Java 2实用教程>第七章 内部类和异常类 7.1 内部类 内部类的外嵌类的成员变量在内部类中依然有效,内部类中的 ...

  3. 3#Java案例

    以下内容引用Github地址https://github.com/DuGuQiuBai/Java/blob/master/day01/code/02_%E5%B8%A6%E6%B3%A8%E9%87% ...

  4. web自动化测试python+selenium学习总结----python环境安装

    一.python下载地址:https://www.python.org/downloads/ 二.双击python的.exe文件安装: 后面直接点击“next” 步骤二:选择安装在D:\python3 ...

  5. NGUI之使用UISprite画线

    代码如下: static void DrawLine(UISprite spriteLine, Vector3 start, Vector3 end) { Vector3 center = (star ...

  6. laravel composer

    composer config -g repo.packagist composer https://packagist.phpcomposer.com 改安装包的全局镜像网址

  7. JQuery选择器,动画,事件和DOM操作

    JQuery是由JS封装的一些方法,供我们调用,可以快速的实现某些JS功能,实际是JS编写的方法包 将JQuery文件放到JS文件夹下,然后引用到<head></head>中 ...

  8. 二进制方式安装mysql5.7.24

    1.实验环境 [root@test-mysql ~]# cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core) 2.浏览器下载mysq ...

  9. 2018-2019-2 《网络对抗技术》Exp0 Kali安装 Week1 20165335

    一.资源下载以及工具安装 1.下载虚拟机工具VMware. 下载链接 :https://www.baidu.com/link?url=uuaBW5ETUl3GrhUKvPbbEc7QlQvGHfpD8 ...

  10. 前端使用node.js的http-server开启一个本地服务器

    前端使用node.js的http-server开启一个本地服务器 在写前端页面中,经常会在浏览器运行HTML页面,从本地文件夹中直接打开的一般都是file协议,当代码中存在http或https的链接时 ...