zoukankan      html  css  js  c++  java
  • mysql-事务隔离 为什么你改了我还看不见

    mMySQL的事务隔离

    隔离级别:

    1,读未提交: 可以读取事务未提交的数据

    2,读提交:只有事务提交了,才能读到

    3,可重复度:开启事务读取数据的过程中,不受任何影响。每次读到的数据都是一样的。MVCC实现的

    4,串行化。同时只能执行一个操作,只能读或者只能写。读,写都会加锁,下一个请求必须等待上一步操作完成。

    MVCC ,多版本并行控制

    InnoDB在每行记录后面保存两个隐藏的列来,分别保存了这个行的创建时间和行的删除时间。这里存储的并不是实际的时间值,而是系统版本号,当数据被修改时,版本号加1
    在读取事务开始时,系统会给当前读事务一个版本号,事务会读取版本号<=当前版本号的数据
    此时如果其他写事务修改了这条数据,那么这条数据的版本号就会加1,从而比当前读事务的版本号高,读事务自然而然的就读不到更新后的数据了

    回滚日志:

    保存了事务发生之前的数据的一个版本,可以用于回滚,同时可以提供多版本并发控制下的读(MVCC),也即非锁定读

    回滚跟数据字典一起存放,回滚字段被清理时,文件大小不会改变

    长事务:

    1,长事务会导致保存很大的回滚日志,从而导致回滚段占用太多内存。只能重建数据库清理

    2,长事务还会长时间占用锁资源。

  • 相关阅读:
    alt、title和label
    css3-transform
    word break和word wrap
    聊聊svg
    JS严格模式
    JS提前声明和定义方式
    js跨域
    IE7append新的元素自动补充完整路径
    HTML5摇一摇
    基于jQuery仿uploadify的HTML5图片上传控件jquery.html5uploader
  • 原文地址:https://www.cnblogs.com/luoying/p/12088221.html
Copyright © 2011-2022 走看看