Java口试常见问题追忆(2024版)-数据库部分

发布日期:2024-10-31 04:58    点击次数:75

MySQL

MySQL 存储引擎1. MySQL ⽀合手哪些存储引擎?默许使⽤哪个?2. MyISAM 和 InnoDB 有什么区别?MySQL 事务1. 事务的四⼤特质了解么?2. 并发事务带来了哪些问题?不成重迭读和幻读有什么区别?3. MySQL 事务防止级别?默许是什么级别?4. MySQL 的防止级别是基于锁终了的吗?5. InnoDB 对 MVCC 的具体终了MySQL 字段类型1. char 和 varchar 的区别是什么?2. varchar(100)和 varchar(10)的区别是什么?3. decimal 和 float/double 的区别是什么?存储⾦钱应该⽤哪⼀种?4. 为什么不保举使⽤ text 和 blob?MySQL 索引1. 为什么索引能提⾼查询速率?2. 集中索引和⾮集中索引的区别?⾮集中索引⼀定回表查询吗?3. 索引这样多优点,为什么不合表中的每⼀个列创建⼀个索引呢?(使⽤索引⼀定能提⾼查询性能吗?)4. 索引底层的数据结构了解么?Hash 索引和 B+树索引优劣分析5. B+树作念索引⽐红⿊树好在哪⾥?6. 最左前缀匹配原则了解么?7. 什么是狡饰索引8. 如何稽察某条 SQL 语句是否⽤到了索引?MySQL 锁1. 表级锁和⾏级锁有什么区别?2. 哪些操作会加表级锁?哪些操作会加⾏级锁?请浅薄例如说⼀下。3. InnoDB 有哪⼏类⾏锁?4. Next-Key Lock 的加锁界限?5. 刻下读和快照读有什么区别?6. MySQL 如何使⽤乐不雅锁和悲不雅锁?7. MySQL ⽇志8. MySQL ⽇志常⻅的⾯试题有:9. MySQL 中常⻅的⽇志有哪些?10. 慢查询⽇志有什么⽤?11. binlog 主要纪录了什么?12. redo log 如何保证事务的合手久性?13. ⻚修改之后为什么不径直刷盘呢?14. binlog 和 redolog 有什么区别?15. undo log 如何保证事务的原⼦性?MySQL 性能优化1. 能⽤ MySQL 径直存储⽂件(⽐如图⽚)吗?2. MySQL 如何存储 IP 地址?3. 如何分析 SQL 的性能?4. 有哪些常⻅的 SQL 优化⼿段?5. 浅薄说⼀下⼤表优化的想路。6. 读写永诀如何终了?7. 为什么要分库分表?有哪些常⻅的分库分表⼯具?8. 深度分⻚如何优化?9. 数据冷热永诀如何作念?10. 常⻅的数据库优化⽅法有哪些?

Redis

Redis 基础1. Redis 为什么这样快?2. 分散式缓存常⻅的本领选型⽅案有哪些?说⼀下 Redis 和 Memcached 的区别和共同点3. 土产货缓存和分散式缓存有什么区别?如何给与?4. 说⼀下有缓存情况下查询数据和修改数据的历程。5. 常⻅的缓存读写战略有哪些?6. 什么是 Redis Module?有什么⽤?项⽬使⽤过吗?Redis 应⽤1. Redis 除了作念缓存,还能作念什么?2. 如何基于 Redis 终了分散式锁?3. Redis 不错作念音讯队伍么?4. Redis 不错作念搜索引擎么?Redis 数据结构1. Redis 有哪些数据结构?2. String 的底层终了是什么?为什么终明晰 SDS?3.Redis 为什么⽤跳表,⽽不⽤均衡树、红⿊树能够B+树?4.Redis为什么使⽤ ListPack 替代 ZipList?5. Zset 的应⽤场景是什么?项⽬哪⾥⽤到了?Redis 合手久化机制(迫切)1. 宕机了,Redis 如何幸免数据丢失?2. 如何给与 RDB 和 AOF?Redis 线程模子(迫切)1. Redis 是单线程,那怎样监听⼤量的客户打量连呢?2. Redis6.0 之前为什么不使⽤多线程?3. Redis6.0 之后为何引⼊了多线程?Redis 内存经管1. Redis 给缓存数据建筑过时时期有啥⽤? Redis 是如何判断数据是否过时的呢?过时数据是如何被删除的?2. Redis 内存满了怎样办?3. Redis 内存淘汰算法除了 LRU 还有哪些?Redis 事务1. Redis 事务⽀合手原⼦性吗?2. Redis 事务⽀合手合手久性吗?3. Redis 事务有什么劣势?如何治理?Redis 性能优化(迫切)1. Redis 批量操作的⽅式有哪些?2. Redis ⼤ key 有什么危害?如何排查和处理?3. 如何发现 Redis 热 Key,有哪些治理⽅案?4. 为什么会有 Redis 内存碎⽚?如何计帐 Redis 内存碎⽚?5. 为什么会有慢查询大叫?为什么会有慢查询大叫?Redis ⽣产问题(迫切)1. 什么情况会出现缓存穿透?有哪些治理目的?2. 什么情况会出现缓存击穿?有哪些治理目的?3. 什么情况会出现缓存雪崩?有哪些治理目的?4. 缓存穿透平和存击穿有什么区别?缓存雪崩平和存击穿有什么区别?5. 缓存预热如何终了?Redis 集群1. 什么是 Sentinel? 有什么⽤?2. Sentinel 如何检测节点是否下线?主不雅下线与客不雅下线的区别?3. Sentinel 是如何终了故障更正的?4. Sentinel 如何给与出新的 master(选举机制)?5. 如何从 Sentinel 集群中给与出 Leader ?6. Sentinel 不错防⽌脑裂吗?7. 为什么需要 Redis Cluster?治理了什么问题?有什么上风?8. Redis Cluster 是如何分⽚的?9. 为什么 Redis Cluster 的哈希槽是 16384 个?10. 如何敬佩给定 key 的应该分散到哪个哈希槽中?11. Redis Cluster ⽀合手再行分拨哈希槽吗?12. Redis Cluster 扩容缩容时代不错提供工作吗?13. Redis Cluster 中的节点是怎样进⾏通讯的?

ES

1. 项⽬中⽤ ES 作念了什么?ES 不错匡助咱们作念什么?2. Lucene 是什么?为什么不径直⽤ Lucene?3. 为什么⽤ ES 不⽤ MySQL?(两者应⽤场景不同)4. 为什么⽤ ES 不⽤ Hbase?(两者应⽤场景不同)5. 为什么 ES 检索⽐较快?倒排索引和正排索引是什么?倒排索引由什么构成?两者区别是什么?6. 分词器什么⽤?项⽬⽤的是什么分词器?若是咱们要基于拼⾳搜索应该如何作念?7. 项⽬中 ES 和 MySQL 的数据是如何进⾏同步的?8. ES 集群中的数据是如何被分拨的(分⽚)?⾃界说路由有什么克己?以上问题小伙伴们不错先进行自测,参考谜底会在后续章节一并给出。