java面试:数据库

Web后端数据库一般用mysql。

数据库基础

Q:数据库事务是什么?
多条sql语句,要么全部成功,要么全部失败。
Q:数据库事务有哪些特性?
数据库事务特性:原子性(Atomic)、一致性(Consistency)、隔离性(Isolation)、持久性(Durabiliy)。简称ACID。
原子性:组成一个事务的多个数据库操作是一个不可分割的原子单元,只有所有操作都成功,整个事务才会提交。任何一个操作失败,已经执行的任何操作都必须撤销,让数据库返回初始状态。
一致性:事务操作成功后,数据库所处的状态和它的业务规则是一致的。即数据不会被破坏。如A转账100元给B,不管操作是否成功,A和B的账户总额是不变的。
隔离性:在并发数据操作时,不同的事务拥有各自的数据空间,它们的操作不会对彼此产生干扰
持久性:一旦事务提交成功,事务中的所有操作都必须持久化到数据库中。
Q:数据库的隔离级别有哪些?
读未提交(read-uncommitted)读提交(read-committed) 可重复读(repeatable-read)串行化(serializable)。
Q:mysql默认的数据库隔离级别是什么?
可重复读(repeatable-read)
Q:不同的数据库隔离级别会导致哪些问题?
数据库中的数据可能同时被多个事务访问,如果没有采取必要的隔离措施,就会导致各种并发问题,破坏数据的完整性。
1.脏读:A事务读取B事务尚未提交的更改数据,并在这个数据的基础上进行操作。如果恰巧B事务回滚,那么A事务读取到的数据是根本不被承认的。
2.不可重复读:A事务读取了B事务已经提交的更改数据。
3.幻读:A事务读取了B事务已经提交的新增数据。
https://www.cnblogs.com/expiator/p/9626123.html

sql优化

Q:平常使用过哪些sql优化的手段?

猜你喜欢

转载自www.cnblogs.com/expiator/p/10241960.html