Java常见面试技术点整理讲解——数据库相关(整理中,未完成)

主要整理数据库方面的技术及原理。涉及数据库的事务,范式,索引,结构,视图等问题。

以及比对各个数据库版本之间的差异,存储引擎的差异,最新数据库的使用等。

 一:事务

事务是指由一系列数据库操作组成的一个完整的逻辑过程,不可拆分。其中,ACID是DBMS在写入或更新资料的过程中,为保证事务是正确可靠的,必须具备的特性。

A:原子性  A‌tomicity

一个事务中的所有操作,要么全成功,要么全失败,如果错误需进行回滚,即整个事务是不可分割的单元。

C:一致性  Consistency

事务开始之前和结束以后,数据库的完整性没有被破坏,即写入资料必须完全符合预设和规则(如外键约束,字段类型等)

I:隔离性  Isolation

数据库允许多个并发事务同时对其进行读写和修改,隔离性可防止多个事务并发执行时,由于交叉执行而导致的数据不一致,事务隔离级别分为处理不同程度的数据问题。

D:持久性  Durability

事务一旦提交,其对数据库所做的更改必须永久保存。


1:并发事务问题

多个线程并发事务中,如果不设置隔离性,可能会出现如下三种常见问题。

脏读:指一个事务读取了另外一个事务未提交的数据,脏读被认为是数据库中的最重要问题,是不被任何数据库所允许的。

场景:使用转账场景描述,A向B转账,事务还没提交,B查到金额到账了,实际上后续A回滚了,导致B拿到错误信息,可能会造成严重后果。


不可重复读:指在一个事务里面读取多次某个数据,读出来的数据不一致。不可重复读在有些数据库被认为是没有问题的,所以它在某些数

你可能感兴趣的:(技术积累,数据库,mysql,oracle,oceanbase)