mysql log and lock
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的更多相关文章
- 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 ...
- ubuntu更改mysql配置文件,使其产生日志文件mysql.log
1.打开mysql配置文件,将68,69行的注释取消掉,保存关闭 sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 2.重启mysql服务 sudo servic ...
- 从MySQL slave system lock延迟说开去
本文主要分析 sql thread中system lock出现的原因,但是笔者并明没有系统的学习过master-slave的代码,这也是2018年的一个目标,2018年我都排满了,悲剧.所以如果有错误 ...
- 关于mysql的metadata lock
昨天晚上上线,却发现一个ddl语句长时间没有生效 查processlist, 发现包括ddl语句在内的众多查询提示 “Waiting for table metadata lock” 唯一没有该提示的 ...
- MySql: log 位置
mysql日志文件位置 登录mysql终端日志文件路径mysql> show variables like 'general_log_file';+------------------+---- ...
- mysql log
mysql binlog3种格式,row,mixed,statement. 解析工作 mysqlbinlog --base64-output=DECODE-ROWS -v mysql-bin.0001 ...
- 用MySQL log调试程序
打开my.ini文件 在[mysqld]的下面加上log = c:/mysql_query.log.txt重启mysql 以后你用可以用editplus查看你运行的sql了,不用在程序里一句句的用lo ...
- mysql deadlock、Lock wait timeout解决和分析
项目上线 线上遇到大量的deadlock 和wait timeout 但是看程序没什么问题 问dba也不能给出很好的解决方案!最终自己去了解mysql锁 以及看mysq锁日志 如果了解mysql锁的机 ...
- MySQL 锁(lock与latch)
一.什么是锁 锁机制用于管理对共享资源的并发访问,它是数据库系统区别于文件系统的一个关键特性. 数据库系统使用锁是为了支持对共享资源的并发访问,提供数据的完整性和一致性. InnoDB存储引擎锁的实现 ...
随机推荐
- python发送邮件心得体会
利用本地smtp server发送 windows下尝试装了两个smtp server大概配置了下,发现没法生效,也没时间仔细研究了.装上foxmail发现以前可以本地发送的选项已经无法找到. 不带附 ...
- unity开发多语言版本
1.文字部分 ①.文字提取参考 http://www.xuanyusong.com/archives/2987: ②.把提取出来的文字放到excel总转换成繁体等版本: ③.把excel转换成txt文 ...
- XMPP技术之Smack库的自定义消息扩展
写此文是为了纪念我耗时两天的Smack库应用开发. 太苦恼了,网上找了一堆材料,关于XMPP的消息扩展方面的资料感觉都是出于同一个源头,基本问题还是基于的库版本都是低于4.1版本的讲解. 我是在Sma ...
- 201904<<快速阅读术>>
在看过了几本数之后,发现原来培养读书的习惯好像也不太难,“将读书融入生活,框定读书时间” 生活中,我确实也是这样执行了.利用每天上下班的时间听书,有些觉得可以读快的书籍用了1.5倍速度在听,难懂的部分 ...
- Vue学习2:模板语法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- zimbra填坑记录
邮件服务器上架,问题记录. 1.DNS解析设置,zimbra收发邮件均使用统一域名,mail.xxxx.com.cn,因此在做SMTP,POP,MX记录时均应指向此域名. 2.实际上架内部网络和安装所 ...
- 配置nginx + keepalived 双主模式(双机互为主备)
- 如何在linux上查看tomcat的端口号
1.先到tomcat配置文件查看tomcat的端口是什么,配置文件一般是:$CATALINA_HOME/conf/server这个文件,查找<Connector port="8080& ...
- Linux基础命令---ipcs显示进程通信
ipcs ipcs指令用来显示进程间通信状况.“-i”选项允许指定特定的资源id.将只打印有关此id的信息. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.Fedora.SUS ...
- vue配置手机通过IP访问电脑开发环境
vue配置手机通过IP访问电脑开发环境config/index.js// Various Dev Server settings host: '0.0.0.0', // can be overwrit ...