1、SQL优化的常见方法
2、SQL索引的顺序、字段的顺序
3、查看SQL索引
4、Mysql分页查询语句
5、Mysql的事物特性和隔离级别
- 事务特性(ACID)
- 原子性(Atomicity):一个事务必须视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚。
- 一致性(Consistency):数据库总是从一个一致性的状态转移到另一个一致性的状态
- 隔离性(Isolation):一个事务所做的修改在最终提交前,对其他事务是不可见的。
- 持久性(Durability):一旦事务提交,其所做的修改就会永久的保存在数据库中
- 隔离级别:
- 读未提交(read-uncommited):一个事务读取另一个事务未提交的数据,可能会出现脏读
- 读已提交(read-commited):一个事务要等到另一个事务提交后才能读取数据,可能会出现不可重复读
- 可重复读(repeatable-read):开始读取数据的事务开始后,不在允许修改动作,可能会出现幻读
- 序列化读(Serializble):串行化顺序执行
大多数数据库默认的隔离级别是read commited如sql server、oracle,Mysql的默认级别是repeatable-read。
6、sql having的使用场景
7、Mysql数据库的索引及原理
8、锁机制介绍:行锁、表锁、排它锁、共享锁
9、乐观锁的业务场景和实现方式
10、事务介绍、分布式事务的理解,常见的解决方案有哪些? 什么是两阶段提交、三阶段提交
11、Mysql记录binglog的方式主要包括三种模式,每种模式的优缺点是什么
12、JDBC如何实现事务、嵌套事务实现、分布式事务实现
13、SQL的整个解析过程、执行过程原理、SQL行转列
14、Redis为什么这么快,Redis采用多线程会有那些问题
15、Redis支持那些数据结构
String 字符串、List 列表、Set 集合、Hash 哈希、Zset有序集合
16、Redsi跳表的问题
17、Redsi单进程单线程如何能够高并发
18、如何使用Redis实现分布式锁
19、Redis分布式锁操作的原子性,Redsi内部是如何实现的
20、为什么用自增列作为主键
MySQL的索引分为单列索引(普通索引、唯一索引、主键索引)和组合索引。
(1) 普通索引
最基本的索引,没有任何限制
(2) 唯一索引
它与普通索引类似,不同的是索引列的值必须是唯一的,但允许有空值;如果是组合索引,则列值的组合必须唯一。
(3) 主键索引
它是一种特殊的唯一索引,不允许有空值,一般是在建表的时候创建主键索引
(4) 组合索引
多个列组成一个索引,专门用于组合搜索