MySQL 面试
什么是索引
索引是中可以帮助MySQL 高效获取数据的数据结构,主要用来提高数据检索效率。索引底层的数据结构是:MySQL 默认的存储引擎是 InnoDB 使用 B+树 作为索引的数据结构。
MySQL 事务的四大特性是什么
事务的四大特性是 ACID , 即原子性、一致性、隔离性、持久化
举例:一个 A 向 B 转 500 元的例子。
原子性:A 向 B 转账这个操作要么成功,要么失败。
一致性:转账过程中数据要保证一致的,A 扣除 500 元 , B 必须增加 500 元
隔离性:A 向 B 转账的操作不受其他事务的影响。
持久化:事务提交后,数据必须进行持久化。
并发事务可能出现的问题
并发事务问题:
- 脏读:一个事务读到另个事务的还为提交的数据
- 不可重复读:一个先后读取同一个条数据,但是两次读取的数据是不同
- 幻读:一个事务按照条件查询的数据时候,数据不存在的,但是插入数据的时候,又发现这条数据已经存在了。
解决方法,使用不同的隔离解决来解决问题 , MySQL 支持四种隔离级别。
- 为提交读 :解决不了任何问题
- 读以提交:解决脏读,但是不能解决不重复读和幻读。
- 可重复读:解决脏读和不可重复读,但是不能解决幻读,这是 MySQL 默认的隔离级别。
License:
CC BY 4.0