前言
MySQL作为SQL类型基础典型, 通常会问, 索引, 事务, SQL实战 这3个部分的问题.
问题
问题-架构
-
能聊聊MySQL的基本架构么?
-
MySQL支持的存储引擎有哪些, 你主要使用过哪种? 说说你的理解?
问题-索引
-
什么是索引?
-
MYSQL内所有的基本种类有哪些?不同分类标准.
-
MySQL索引的基本实现原理。
-
MySQL如何创建和选择索引?
-
MySQL内索引失效的原因有哪些?
-
MySQL内如何知道是否命中索引? explain关键字用过么? 需要注意哪些关键字?
-
[最左依赖原则-实战1] 表A有字段a,b,c, 且有idx(a,b,c), 试问select * from table where a=‘a’ and ‘‘b’=b and c=‘c’ 会命中索引么?
-
[最左依赖原则-实战2] 表A有字段a,b,c, 且有idx(a,b,c), 试问select * from table where ‘‘b’=b and c=‘c’ 会命中索引么?
-
[最左依赖原则-实战3] 表A有字段a,b,c,d 且有idx(a,b,c), 试问select * from table where ‘‘b’=b and c=‘c’ 会命中索引么?
-
问题-事务
-
什么是MySQL事务?
-
MySQL事务基本特性有哪几个? 各是如何保证的?
- 如何保证事务的原子性?
- 如何保证事务的一致性?
- 如何保证事务的隔离性?
- 如何保证事务的持久性?
-
[脏读/幻读/不可重复读]MySQL内事务的隔离级别有哪几种? 各会产生什么问题? 如何解决?
- 了解MySQL内的当前读和快照读么? 其是如何实现的?
- 什么是幻读? 如何解决幻读问题?
- 什么是脏读? 如何解决脏读问题?
- 什么是不可重复读? 如何解决不可重复读问题?
- MySQL内读读并发会产生什么问题? 读写并发么? 写写并发呢? [注意事务的隔离级别]
-
你们生产中, 使用的事务的隔离级别是哪种? 各有什么优劣性? 如何查看? 如何修改?
- 读已提交和可城重复度皆可. 但是要说出原理?
-
聊聊你对MySQL内日志文件的理解?
-
MySQL 内 binlog, undolog, redolog 写的现后顺序?
-
MySQL 内 undolog, redolog 写的现后顺序?
-
什么是MVCC? 其如何实现的? 谈谈你对他的理解?
问题-锁
锁通常是作为事务的引申存在的. 在InnoDB存储引擎中, 读已经提交事务级别下. 比如间隙锁, 临键锁 通常是为了解决幻读问题的。(mvcc无法解决的问题) 其余事务级别下通常存在的是记录锁, 也叫行锁.
-
MySQL 内, 锁的种类有哪些?
-
什么是记录锁, 间隙锁, 临界锁?
-
InnoDB, 读已经提交级别下, 表tableA(a int, b int) a非主键., select * from tableA where a=10 会创建什么类型的锁?
-
InnoDB, 读已经提交级别下, 表tableA(a int, b int) a为主键., select * from tableA where a=10 会创建什么类型的锁?
-
如何查看InnoDB引擎执行操作时是否加了何种类型的锁?
-
什么情况会产生MySQL内死锁?
-
如何查看MySQL死锁问题日志?
-
如何解决MySQL内死锁问题?
问题-分库分表
如不涉及此项, 可略.