美文网首页
mysql事物隔离级别和myisam

mysql事物隔离级别和myisam

作者: 江江简书 | 来源:发表于2021-05-28 11:14 被阅读0次

    带着疑问出发:1.myisam不支持事物,如果强制使用事物会怎样;2.mysql事物隔离级别是怎样的

    解惑1

    begin;
    update t_base_rescode set flow_num=247 where id_rescode='xxx';
    rollback;
    
    • 结论:不会抛错就是没有办法回滚而已,数据即时生效

    解惑2

    4种隔离级别

    • 读未提交(read-uncommitted)
    • 不可重复读(read-committed)
    • 可重复读(repeatable-read)
    • 串行化(serializable)

    mysql 8.0查询当前事物隔离级别是什么

    SELECT @@global.transaction_isolation; //全局
    SELECT @@transaction_isolation;//当前会话
    set session transaction isolation level read uncommitted
    //设置隔离级别

    下面测试要分开2个窗口同时进行模拟

    读未提交

    select * from t_base_person where name='xx';//此处读到的usedname 为jjj //此处读到第一次的值
    BEGIN;
    update t_base_person set usedname='jjj' where name='xx';
    select * from t_base_person where name='xx';//此处读到的usedname 为jjj
    ROLLBACK;
    select * from t_base_person where name='xx';//此处读到第一次的值和第一次一样
    
    • 小结:读未提交即不关注事物是否回滚了影响业务逻辑

    不可重复读

    SELECT @@transaction_isolation;
    select * from t_base_person where name='xx';
    set session transaction isolation level read committed;
    BEGIN;
    update t_base_person set usedname='jjj' where name='xx';
    select * from t_base_person where name='xx';
    ROLLBACK;
    
    • 小结:读到的数据是必需是commit后的数据

    其余2种的方法其实也差不多就试验了

    总结:在事物层级,默认级别就足够了,不用做其余修改就行

    https://www.cnblogs.com/wyaokai/p/10921323.html //参考文章

    相关文章

      网友评论

          本文标题:mysql事物隔离级别和myisam

          本文链接:https://www.haomeiwen.com/subject/pnxssltx.html