最新公告
  • 欢迎您光临吆喝资源网,本站提供站长亲测的网站源码下载,打造专业的源码网!立即加入我们
  • 介绍 Mysql-InnoDB 事物学习

    mysql视频教程栏目介绍InnoDB的事物学习

    推荐(免费):mysql视频教程

    事物基本概念

    事物的特性(ACID)

    • 原子性 atomicity

    • 一致性 consistency

    • 隔离性 isolation

    • 持久性 durability

    事物的类型

    • 扁平事物

    • 带有保存点的扁平事物

    • 链事物 嵌套事务

    • 分布式事务

    事物的实现

    redo与undo redo
    redo:保证事物的原子性、持久性,物理日志,基本上是顺序写
    undo:保证事物的一致性,逻辑日志,undo会产生redo,用于事物回滚和mvcc,随机读写

    redo

    redo log buffer
    redo log file

    force log at commit机制实现事物的持久性

    redo log buffer -> 文件系统缓存 -> (fsync) 磁盘文件

    innodb_flush_log_at_trx_commit
    0:master thread完成写入磁盘
    1:默认,每次事物提交必须fsync
    2:写入文件系统缓存,不执行fsync

    log block

    512 字节和磁盘山区大小一致,保证日志写入是原子性的,不需要doublewrite ?技术

    f8142a60088bd3dd2261a288a6ddbec.png

    分为 512 – 12 -8 = 492
    重做日志头:12 字节
    重做日志内容:
    重做日志尾:8字节

    LOG_BLOCK_HAR_NO【4字节】:log block在 log buffer的位置
    LOG_BLOCK_HAR_DATA_LEN【2字节】:log block占用大小
    LOG_BLOCK_FIRST_REC_GROUP【2字节】:第一个日志所在的偏移量
    LOG_BLOCK_CHECKPOINT_NO【4字节】:最后被写入时的检查点第4字节的值 ??

    log grooup

    多个多个重做日志文件组成

    redo log file

    90a922da90765bc084f28a3d8b2a2f1.png

    重做日志格式

    d0cf70ec8ad98875ce6019487a10e37.png

    redo_log_type:重做日志的类型
    space:表空间的ID
    page_no:页的偏移量

    LSN(log sequence number)

    8字节,单调递增
    含义:
    重做日志写入总量
    checkpoint的位置
    页的版本

    e11856a986b773eb35510cec02350a5.png

    undo

    undo segment:共享表空间内

    (128个)rollback segment > (1024个)undo segment ,事物并发限制在128*1024

    undo log 格式

    insert undo log
    update undo log

    fed29bc0daadcc4d3c58f1dfe1b461e.png

    purge

    group commit

    事物的隔离级别

    READ UNCOMMIT:使用查询语句不会加锁,可能会读到未提交的行(Dirty Read)
    READ COMMIT:只对记录加记录锁,而不会在记录之间加间隙锁,所以允许新的记录插入到被锁定记录的附近,所以再多次使用查询语句时,可能得到不同的结果(Non-Repeatable Read)EPEATABLE READ:多次读取同一范围的数据会返回第一次查询的快照,不会返回不同的数据行,但是可能发生幻读(Phantom Read);
    SERIALIZABLE:InnoDB 隐式地将全部的查询语句加上共享锁,解决了幻读的问题;

    脏读:在一个事务中,读取了其他事务未提交的数据
    不可重复读:在一个事务中,同一行记录被访问了两次却得到了不同的结果。
    幻读:在一个事务中,同一个范围内的记录被读取时,其他事务向这个范围添加了新的记录。

    不可重复读的原因就是,在 READ COMMITED 的隔离级别下,存储引擎不会在查询记录时添加行锁,锁定 id = 3 这条记录。

    分布式事物

    XA

    Resource Managers:提供访问事物资源的方法
    Transaction Maneger:协调参与全局事物中的各个事物
    Application Program:定义事物的便捷,指定全局事物中的操作

    037b7239cf5d5358493ff8a63fb4056.png

    以上就是介绍 Mysql-InnoDB 事物学习的详细内容,更多请关注吆喝资源网其它相关文章!

    本文转自PHP中文网,吆喝网(http://yaoohe.com)搜集整理,如有疑问请联系本站客服!

    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
    2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
    3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    7. 如遇到加密压缩包,默认解压密码为"yaoohe.com",如遇到无法解压的请联系管理员!
    8. 特别声明:本站源码除标明“已测试”外,其它都未测试,有BUG概本站概不负责。
    吆喝资源网 » 介绍 Mysql-InnoDB 事物学习

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    吆喝资源网
    一个高级程序员模板开发平台

    发表评论

    • 6766会员总数(位)
    • 19292资源总数(个)
    • 60本周发布(个)
    • 0 今日发布(个)
    • 1823稳定运行(天)

    专业的网站源码网,提供精品php网站源码下载,小程序源码下载等!!

    小程序源码 了解详情
    升级SVIP尊享更多特权立即升级