语句
数据库 limit 实现原理
inner join、right join、 left join的区别
联合查询
引擎:
范式了解吗
Redis和MySQL的区别,关系型数据库和非关系型数据库的区别 (结构化和非结构化,键值对关系,是否易于扩展)
Git、svm区别:快照
InnoDB、Myisam区别 Mysql引擎
两用引擎优势
查询优化器
Git、svm区别:快照
日志:
数据库的慢查询日志、执行计划、索引、B树和B+树的区别
数据库:Binlog是什么,Redo log和Undo log在事务中表现了怎样的角色(简单地扯了一下MVCC和LSM),事务写入磁盘做了哪些处理(说了个Double Write)
索引
数据库主键和索引区别
主键索引、唯一索引、联合索引、聚集索引、非聚集索引,具体解释一下
索引怎么实现的[B+树],为什么选这个数据结构? B+树 复杂度 磁盘io的次数
B树和B+树的区别,索引为什么不用二叉树、红黑树等?
一个联合索引(a,b,c),where b=.. and c=....走不走索引?为什么?哪些走索引? 如果 where b and c and a呢打乱顺序呢
说一下mysql索引数据结构,为什么B+树,和hash索引区别?
数据库如何优化效率?什么情况下要建索引?
自己是否有建立过索引,建立索引需要注意哪些事项?
前缀匹配
每一列都可以加索引吗?
.数据库的索引结果?
事务:
脏读,不可重复读写,幻读是什么; MySQL避免脏读的底层实现。(next-key locks,行锁,间隙锁)
事务的四大特性,事务等级。每种等级解决了什么问题
mysql的undolog和redulog的意义
事务的理解
锁:
简要介绍mvcc
问事务隔离级别是怎么实现的,说一下MVCC是什么样的机制。它是怎么管理这些版本的,版本是什么时候被创建的,什么时候被
MySQL乐观锁悲观锁
分布式:
MySQL数据库,一张表的数据存储在多个服务器中时,如何同步
主从架构怎么保证数据同步
MQ作用、原理以及主要组件
哈希一致性
数据库优化:
mysql查询什么时候会慢 如果已经建索引了,会不会也慢,具体什么场景
如果比较慢,增加CPU的数量或者内存的容量能不能有提高
mysql分区
MySQL字段类型的长短会对性能有影响吗
如何加速数据库查找
Redis相关:
为什么面试官要说单进程而不是单线程
Redis了解哪些(我把底层的SDS,渐进式hash,压缩表,raft算法,gossip协议疯狂输出)
Redis的数据结构
Redis zset怎么实现 .
.Redis持久化方式
全量复制、部分复制
复制积压缓冲区
.redis 键删除策略
rdb实现细节(为什么bgsave不阻塞请求,那这时候如果来请求了redis如何处理的),aof,redis分布式锁细节 持久化的时候内存会有什么变化
redis字典的实现;重哈希怎么实现;重哈希是同步还是异步;哈希键还用什么数据结构;
热点key问题
redis 哨兵
redis 跳表,redis 跳表,查询和插入复杂度 bgsave 日志复制,集群模式
.Redis是单进程单线程,那为什么RDB时候不会阻塞
Redis集群策略、分槽
.Redistribution集群中不同节点如何通信
场景题:
Redis主从部署,在写请求特别多的场景下,如何保证在从节点读到的数据不是脏数据,我当时被这题问懵了,就说对从Redis上锁,同步完之后在进行回调,面试官笑了,说你还能改Redis源码啊🤣事后问大佬,一个可行解是给数据加上时间戳,然后在代码层面进行时间戳的比较,总之就是有点MVCC的味道