Loading

面试-数据库

数据库

acid
原子性 要么全部完成,要么完全不起作⽤;
一致性 多个事务对同⼀个数据读取的结果是相同的;
隔离性 ⼀个⽤户的事务不被其他事务所⼲扰
持久性 改变是持久的,发⽣故障也不应该对其有任何影响

脏读(Dirty read)写完之后再读
丢失修改(Lost to modify) 写操作的冲突,解决办法是一个一个地写
不可重复读(Unrepeatableread)读写操作的冲突,解决办法是读完再写,重点是修改
幻读(Phantom read)读写操作的冲突,解决办法是读完再写,重点在于新增或者删除
原因:快照读和当前读冲突。

读未提交:未提交的都能读,所以啥都解决不了
读已提交 :只能读已经提交的,解决脏读
可重复读:读的那行记录不允许其他事务修改,所以解决不可重复读
串行化:全部事务按顺序执行,啥都解决了

spring事务失效场景
https://blog.csdn.net/mccand1234/article/details/124571619
因为spring事务,默认情况下只会回滚RuntimeException(运行时异常)和Error(错误),对于普通的Exception(非运行时异常),它不会回滚。比如常见的IOExeption和SQLException。所以,建议一般情况下,将该参数设置成:Exception或Throwable。

  • 异常父类Throwable
    • error
    • exception
      • 非运行时异常
        • IoException
          • FileNotFoundException
      • RuntimeException
        • NullpointException
        • ArithmeticException
posted @ 2023-06-17 19:57  风萧萧5  阅读(4)  评论(0编辑  收藏  举报