1.ACID讲下
(阿校招)
ACID是事物的四个特性。分别是原性(Atomicity)、致性(Consistency)、隔离性(Isolation)、持久性(Durability)。原性是指事物是个不可分割的作单位,事物中的操作要么都发,要么都不发。
最经典的就是转账案例,我们把转和转出当作个事物的话,就需要在SQL中显式指定开启事务。
致性是说数据库事务不能破坏关系数据的完整性以及业务逻辑上的致性。我们可以从数据库层和业务层两来保证,数据库层我们可以设置触发器,外键,表,约束等来保证,业务层就是我们Java程师的作啦。
隔离性指的是多个事务并发访问时,事务之间是隔离的,个事务不应该影响其它事务运效果。多个事务并发访问时,事务之间是隔离的,个事务不应该影响其它事务运效果。这个点引申出了下两道题,以及后边的加锁和阻塞持久性意味着即使出现了任何事故如断电等,事务旦提交,则持久化保存在数据库中,不会被回滚。
2.说下脏读,不可重复读和幻读
脏读:意味着个事务读取了另个事务未提交的数据,这个数据是有可能回滚的。即这个事物读取的数据是不正确的。
不可重复读:在数据库访问中,个事务范围内两个相同的查询却返回了不同数据。这是由于查询时系统中其他事务修改的提交引起的。即这个事物在读的过程中被修改了。
幻读:当个事物对整个table进修改之后,第个事物向表中插了数据,此时第个事物发现了新插的没有修改的数据,好像发了幻觉样。
MySQL数据库以上就是小科今天整理提供的MySQL面试题,希望为学习MySQL的同学提供了有用的面试素材,以后小科每日均会提供MySQL、Python及Web相关的习题。