数据库常识作为面试必考题,在面试的过程中占比很好,尤其是后端开发,肯定要精通,尤其是索引和事务,每个业余的面试官都会问,肯定不能只停留在增删查改上。
关系型数据库(次要为 Mysql)
数据库三范式
别离说一下范式和反范式的优缺点
Mysql 数据库索引。B+ 树和 B 树的区别
为什么 B+ 树比 B 树更适宜利用于数据库索引,除了数据库索引,还有什么中央用到了(操作系统的文件索引)
聚簇索引和非聚簇索引
前缀索引和笼罩索引
介绍一下数据库的事务
Mysql 有哪些隔离级别
Mysql 什么状况会造成脏读、可反复度、幻读?如何解决
Mysql 在可反复度的隔离级别下会不会有幻读的状况,为什么?
Mysql 事务是如何实现的
Binlog 和 Redo log 的区别是什么,别离是什么用?
谈一谈 MVCC 多版本并发管制
Innodb 和 MyISAM 的区别是什么
Innodb 的默认加锁形式是什么,是怎么实现的
如何高效解决大库 DDL
Mysql 索引重建
对于多列索引,哪些状况下能用到索引,哪些状况用不到索引
为什么应用数据库索引能够提高效率,在什么状况下会用不到数据库索引?
共享锁和排他锁的应用场景,
关系型数据库和非关系数据库的优缺点
Mysql 什么状况会造成慢查,如何查看慢查问
如何解决慢查问,你个别是怎么解决慢查问的
Mysql 中 varchar 和 char 的区别
数据库外键的优缺点
有没有应用过数据库的视图
Mysql 中插入数据应用自增 id 好还是应用 uuid,为什么?
Mysql 有哪些数据类型,应用的时候有没有什么留神点
Mysql 集群有哪几种形式,别离实用于什么场景
Mysql 主从模式如何保障主从强一致性
Mysql 集群如何保障主从可用性
Mysql 读写拆散有哪些解决办法
非关系型数据库
redis 的底层数据结构有哪些
redis 中的 SDS 和 C 语言中的字符串有什么区别,长处是什么
redis 中的字典是如何实现的,如何解决抵触和扩容
redis 的跳表的应用场景是什么,能够实现一下吗
redis 缓存穿透,缓存击穿,缓存雪崩,热点数据集中生效(常问)
redis 的淘汰策略,来写一下 LRU 吧
redis 的长久化形式,RDB 和 AOF 别离的应用场景
redis 如何处理事务
redis 为什么那么快?
redis 是单线程为什么还那么快?
redis 的操作为什么是原子性的,如何保障原子性
redis 集群用过哪些计划,别离怎么做。讲一下一致性哈希
redis 什么状况下会呈现性能问题,有什么解决方法?
有没有应用过 redis 的分布式锁,有什么优缺点
说一下 redis 的内存模型
说一下 redis 和 memcache 的区别
你用 redis 做过什么?(这里尽量不要讲只做过缓存,能够说一下队列,排行榜 / 计数器,公布 / 订阅)
你用过哪些非关系型数据库,都有什么特点,应用场景别离是什么(体现你技术广度的时刻到了,尽可能多说,然而不会的不要说,避免被问死)
Mongodb 绝对于 Mysql 有哪些劣势,底层索引应用的数据结构是什么,为什么要应用这个
Mongodb 中的分片是什么意思