zoukankan      html  css  js  c++  java
  • 数据库事务速记

    1.   隔离性有隔离级别(4个):

    隔离级别 默认级别(数据库) 隔离 解决的问题 QA 导致的问题

    读未提交,

    read uncommitted

           

    读取到其他事务的中间状态,

    若其他事务回滚则会读取到垃圾数据

    读已提交, 

    read committed

    MsSQL,

    Oracle

    对写操作隔离

    解决脏读问题

    Q: 其他事务读取是否受影响

    A: 不受影响

    导致不可重复读问题

    可重复读

    repeatable read

    mySQL

    对读操作隔离

    一次事务中只在第一次select时

    生成快照

    解决不可重复读问题

    Q:  其他事务是否可以增删改

    A: Yes

    导致幻读问题

    串行化

    serializable

        解决幻读问题   导致并发问题

    2..锁

    共享锁允许加其他共享锁,
    排它锁不允许加其他任何锁.

    insert、delete和update都是会加排它锁(Exclusive Locks)的,

    select默认不加锁(也可以加共享锁or 排它锁),排他锁会阻止其它事务再对其锁定的数据加读或写的锁,但是对不加锁的读就不起作用了。

    3.测试-锁:

    窗口1:

    1  START TRANSACTION;
    2  select * from account where id = 121 lock in share mode;  
    3 -- COMMIT

    窗口2:

    1  START TRANSACTION;
    2  select * from account where id = 121 for update; 
    3  -- COMMIT

    窗口3(查看锁的记录)

    1 SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;
    2 SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;
    3 SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;
  • 相关阅读:
    11.10 安装GMONE3,卸载 UNITY和UNITY 2D
    Ubuntu 11.10 使用Gnome3 快捷键Alt+F2无效的解决办法
    Ioc容器应用浅析EasyJF学习
    JPA批注参考
    MVC(Model/View/Controller)EasyJF学习
    Subversion使用手記
    Eclipse 插件 esourceBundleEditor
    用 Subversion 构建版本控制环境
    TortoiseSVN使用
    自信的真正含义NLP
  • 原文地址:https://www.cnblogs.com/AspDotNetMVC/p/12619600.html
Copyright © 2011-2022 走看看