数据库面试题汇总
整理来源于网络,如有侵权请告知。
1、什么是数据库事务
数据库事务是构成单一逻辑工作单元的操作集合。数据库事务可以包括一个或多个数据库操作,但是这些操作构成一个逻辑上的整体。
2、数据库事务的四个特性(ACID)
A:原子性,事务中的所有操作作为一个整体不可分割,要么全部操作要么全部不操作。
C:一致性,事务的执行结果必须使数据库从一个一致性状态转为另一个一致性状态。一致性状态:1.系统状态满足数据库的完整性约束,2.系统的状态反映数据库所描述的现实世界的真实状态。
I:隔离性:并发执行的事务不会相互影响,其对数据库的影响和他们串行执行时一样。
D:持久性:事务一旦提交,对数据库的影响就是持久的。任何事务或系统故障都不会导致数据丢失。
3、什么是数据库连接泄露
数据库连接泄露指的是如果在某次使用或者某段程序中没有正确地关闭Connection、Statement和ResultSet资源,那么每次执行都会留下一些没有关闭的连接,这些连接失去了引用而不能得到重新使用,因此就造成了数据库连接的泄漏。数据库连接的资源是宝贵而且是有限的,如果在某段使用频率很高的代码中出现这种泄漏,那么数据库连接资源将被耗尽,影响系统的正常运转。
4、聚集索引
数据行的物理顺序与列值的顺序相同,如果我们查询id比较靠后的数据,那么这行数据的地址在磁盘中的物理地址也会比较靠后。而且由于物理排列方式与聚集索引的顺序相同,所以也就只能建立一个聚集索引了。
5、主键与外键
关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键。
外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。比如,A表中的一个字段,是B表的主键,那他就可以是A表的外键。
5、并发异常
脏写:事务回滚了其他事务对数据库的已提交修改。
丢失更新:事务覆盖了其他事务对数据库的已提交修改。
脏读:事务读取了其他事务的未提交的数据。
不可重复读:一个事务对同一数据的读取前后不一致。注:脏读读的是其他事务未提交的数据,不可重复读读的是事务已提交的数据,但是数据被其他事务修改过导致前后读取结果不一致。
幻读:事务读取某个范围的数据时,因为其他事务的操作导致前后读取结果不一致,在一个事务里面的操作中发现了未被操作的数据。注:不可重复读针对的是确定的一行数据,幻读针对的是不确定的多行数据,幻读常出现在带有查询条件的范围查询中。
6、事务的隔离级别
从低到高是读未提交、读已提交、可重复读、串行化。隔离级别越低,可能出现的并发异常越多,但是并发能力越强。
参考资料:

浙公网安备 33010602011771号