MySql高级
面试重点
集合 线程 SpringMVC运行流程 Spring ioc aop JVM+JUC SpringBoot+SpringCloud MySql Redis
mysql逻辑架构
连接层 服务层 引擎层 存储层
面试题
1.什么是数据库的事务??
事务:一次sql会话过程中(session),所有sql语言,要么同时成功,要么同时失败。
2.什么是数据库的ACID四大特性?
原子性 一致性 隔离性 持久性
3.数据库的隔离级别?如何查看?mysql默认的隔离级别是什么?
RU(Read Uncommitted):读未提交
RC(Read Committed):读已提交
RR(Repeatable Read):可重复读
Searial(Serializable):串行化
show variables like ‘tx_isolation’;
Repeatable Read
4.什么是脏读、不可重复读,幻读?
脏读:一个事务在处理过程中读取了另外一个事务未提交的数据。
不可重复读:指一个事务范围内,多次查询某个数据,却得到不同的结果。第一个事务中的两次读取数据之间,由于第二个事务的修改,第一个事务两次读到的数据可能就是不一样的。
幻读:发生在当两个完全相同的查询执行时,第二次查询所返回的结果集跟第一个查询不相同。
5.如何解决幻读的问题
InnoDB和Falcon存储引擎通过多版本并发控制(MVCC,Multiversion Concurrency Control)机制解决了该问题(mysql的Innodb引擎解决了幻读问题)。
6.不可重复读和幻读有什么区别?
区别在于不可重复读是由于另一个事务对数据的更改所造成的,而幻读是由于另一个事务插入或删除引起的。
docker安装mysql
docker run -d -p 3306:3306 --privileged=true
-v /{YourPath}/mysql/log:/var/log/mysql
-v /{YourPath}/mysql/data:/var/lib/mysql
-v /{YourPath}/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7