Innodb日志与事务

摘要:
此模式称为“预写日志模式”

1.Innodb日志:

错误日志:记录出错信息,也记录一些警告信息或者正确的信息。
查询日志:记录所有对数据库请求的信息,不论这些请求是否得到了正确的执行。
慢查询日志:设置一个阈值,将运行时间超过该值的所有SQL语句都记录到慢查询的日志文件中。
二进制日志:记录对数据库执行更改的所有操作。
中继日志:事务日志:

2.Innodb事务:

1.读未提交(RU)
2.读已提交(RC)
3.可重复读(RR)
4.串行 

3.innodb引擎的4大特性:

插入缓冲(insert buffer)
二次写(double write)
自适应哈希索引(ahi)
预读(read ahead)

4.事务是如何通过日志实现的:

事务日志是通过redo和innodb的存储引擎日志缓冲(Innodb log buffer)来实现的,
当开始一个事务的时候,会记录该事务的lsn(log sequence number)号;
当事务执行时,会往InnoDB存储引擎的日志的日志缓存里面插入事务日志; 当事务提交时,必须将存储引擎的日志缓冲写入磁盘(通过innodb_flush_log_at_trx_commit来控制),
也就是写数据前,需要先写日志。这种方式称为“预写日志方式”

免责声明:文章转载自《Innodb日志与事务》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇java正则表达式(十)Java八股文——Redis与一致性协议下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

redis慢查询的简单认识和事务、订阅的认识

  有学习的小伙伴可以一起讨论有问题可以问我,微信 15321502296慢查询 阀值:规定的一个值 阈值:规定的一个范围 就是系统在执行命令前后计算每条命令的执行时间,当超过预设的阀值时,就见这条命令记录下来 slowlog-log-slower-than  微秒 1秒=1000毫秒=1000000微秒 0 记录所有命令 <0不进行记录 slowl...

Sql中创建事务处理

Create Procedure MyProcedure AS Begin Set NOCOUNT ON; Set XACT_ABORT ON; --这句话非常重要 begin try Begin Tran --开始事...

QeePHP的事务安全支持

Qee对事务提供了简单的支持,当然只有在存储引擎支持事务的前提下! 比如我们的的用户表分为用户基本表member表和用户详细信息表memberfield表,他们为一对一hasone,memberfield存有member表的主键uid,假设关联的属性为field 当我们更新用户信息时,可能同时要更新member表,和memberfield表,比如:...

springboot基于方法级别注解事务的多数据源切换问题

springBoot多数据源配置   配置读数据源 @Component @ConfigurationProperties(prefix = "jdbc.read") @PropertySource("classpath:application.properties") public class ReadDataSource{ privat...

精通 Oracle+Python 事务和大型对象

通过 Python 管理数据事务、处理大型对象 事务包含一组 SQL 语句,这组 SQL 语句构成数据库中的一个逻辑操作,如转帐或信用卡支付操作。将 SQL 语句聚合到一个逻辑组中,其效果完全取决于事务的成败,事务成功则提交更改,事务失败则撤销内部 SQL 的结果(整体撤消)。通过 Python,您可以利用 Oracle 数据库所提供的原子性、一致性、孤立...

SQL Server2000中死锁经验总结 &amp;lt;转&amp;gt;

虽然不能完全避免死锁,但可以使死锁的数量减至最少。将死锁减至最少可以增加事务的吞吐量并减少系统开销,因为只有很少的事务: 回滚,而回滚会取消事务执行的所有工作。 由于死锁时回滚而由应用程序重新提交。 下列方法有助于最大限度地降低死锁: 按同一顺序访问对象。 避免事务中的用户交互。 保持事务简短并在一个批处理中。 使用低隔离级别...