JAVA面试大全之数据库篇

目录

1、原理和SQL

1.1、什么是事务?事务基本特性ACID?

1.2、数据库中并发一致性问题?

1.3、事务的隔离等级?

1.4、ACID靠什么保证的呢?

1.5、SQL 优化的实践经验?

1.6、Buffer Pool、Redo Log Buffer 和undo log、redo log、bin log 概念以及关系?

1.7、从准备更新一条数据到事务的提交的流程描述?

2、MySQL

2.1、能说下myisam 和 innodb的区别吗?

2.2、说下MySQL的索引有哪些吧?

2.3、什么是B+树?为什么B+树成为主要的SQL数据库的索引实现?

2.4、那你知道什么是覆盖索引和回表吗?

2.5、什么是MVCC? 说说MySQL实现MVCC的原理?

2.6、MySQL 锁的类型有哪些呢?

2.7、你们数据量级多大?分库分表怎么做的?

2.8、那分表后的ID怎么保证唯一性的呢?

2.9、分表后非sharding_key的查询怎么处理呢?

2.10、MySQL主从复制?

2.11、MySQL主从的延迟怎么解决呢?

2.12、MySQL读写分离方案?

3、Redis

3.1、什么是Redis,为什么用Redis?

3.2、为什么Redis 是单线程的以及为什么这么快?

3.3、Redis 一般有哪些使用场景?

3.4、Redis 有哪些数据类型?

3.5、谈谈Redis 的对象机制(redisObject)?

3.6、Redis 数据类型有哪些底层数据结构?

3.7、为什么要设计sds?

3.8、Redis 一个字符串类型的值能存储最大容量是多少?

3.9、为什么会设计Stream?

3.10、Redis Stream用在什么样场景?

3.11、Redis Stream消息ID的设计是否考虑了时间回拨的问题?

3.12、Redis Stream消费者崩溃带来的会不会消息丢失问题?

3.13、Redis Steam 坏消息问题,死信问题?

3.14、Redis 的持久化机制是什么?各自的优缺点?一般怎么用?

3.15、RDB 触发方式?

3.16、RDB由于生产环境中我们为Redis开辟的内存区域都比较大(例如6GB),那么将内存中的数据同步到硬盘的过程可能就会持续比较长的时间,而实际情况是这段时间Redis服务一般都会收到数据写操作请求。那么如何保证数据一致性呢?

3.17、在进行RDB快照操作的这段时间,如果发生服务崩溃怎么办?

3.18、可以每秒做一次RDB快照吗?

3.19、AOF是写前日志还是写后日志?

3.20、如何实现AOF的?

3.21、什么是AOF重写?

3.22、AOF重写会阻塞吗?

3.23、AOF日志何时会重写?

3.24、AOF重写日志时,有新数据写入咋整?

3.25、主线程fork出子进程的是如何复制内存数据的?

3.26、在重写日志整个过程时,主线程有哪些地方会被阻塞?

3.27、为什么AOF重写不复用原AOF日志?

3.28、Redis 过期键的删除策略有哪些?

3.29、Redis 内存淘汰算法有哪些?

3.30、Redis的内存用完了会发生什么?

3.31、Redis如何做内存优化?

3.32、Redis key 的过期时间和永久有效分别怎么设置?

3.33、Redis 中的管道有什么用?

3.34、什么是redis事务?

3.35、Redis事务相关命令?

3.36、Redis事务的三个阶段?

3.37、Redis事务其它实现?

3.38、Redis事务中出现错误的处理?

3.39、Redis事务中watch是如何监视实现的呢?

3.40、为什么 Redis 不支持回滚?

3.41、Redis 对 ACID的支持性理解?

3.42、Redis事务其他实现?

3.43、Redis集群的主从复制模型是怎样的?

3.44、Redis 全量复制的三个阶段?

3.45、Redis 为什么会设计增量复制?

3.46、Redis 增量复制的流程?

3.47、增量复制如果在网络断开期间,repl_backlog_size环形缓冲区写满之后,从库是会丢失掉那部分被覆盖掉的数据,还是直接进行全量复制呢?

3.48、Redis 为什么不持久化的主服务器自动重启非常危险呢?

3.49、Redis 为什么主从全量复制使用RDB而不使用AOF?

3.50、Redis 为什么还有无磁盘复制模式?

3.51、Redis 为什么还会有从库的从库的设计?

3.52、Redis哨兵机制?哨兵实现了什么功能呢?

3.53、Redis 哨兵集群是通过什么方式组建的?

3.54、Redis 哨兵是如何监控Redis集群的?

3.55、Redis 哨兵如何判断主库已经下线了呢?

3.56、Redis 哨兵的选举机制是什么样的?

3.57、Redis 1主4从,5个哨兵,哨兵配置quorum为2,如果3个哨兵故障,当主库宕机时,哨兵能否判断主库“客观下线”?能否自动切换?

3.58、主库判定客观下线了,那么如何从剩余的从库中选择一个新的主库呢?

3.59、新的主库选择出来后,如何进行故障的转移?

3.60、Redis事件机制?

3.61、Redis文件事件的模型?

3.62、什么是Redis发布订阅?

3.63、Redis发布订阅有哪两种方式?

3.64、什么是Redis Cluster?

3.65、说说Redis哈希槽的概念?为什么是16384个?

3.66、Redis集群会有写操作丢失吗?为什么?

3.67、Redis 客户端有哪些?

3.68、Redis如何做大量数据插入?

3.69、Redis实现分布式锁实现? 什么是 RedLock?

3.70、Redis缓存有哪些问题,如何解决?

3.71、Redis性能问题有哪些,如何分析定位解决?

3.72、Redis单线程模型? 在6.0之前如何提高多核CPU的利用率?

3.73、Redis6.0之前的版本真的是单线程的吗?

3.74、Redis6.0之前为什么一致不用多线程?

3.75、Redis6.0为什么要引入多线程呢?

3.76、Redis6.0默认是否开启了多线程?

3.77、Redis6.0多线程开启时,线程数如何设置?

3.78、Redis6.0多线程的实现机制?

3.79、开启多线程后,是否会存在线程并发安全问题?

4、MongoDB

4.1、什么是MongoDB?为什么使用MongoDB?

4.2、MongoDB与RDBMS区别?有哪些术语?

4.3、MongoDB聚合的管道方式?

4.4、MongoDB聚合的Map Reduce方式?

4.5、Spring Data 和MongoDB集成? 

4.6、MongoDB 有哪几种存储引擎?

4.7、谈谈你对MongoDB WT存储引擎的理解?

4.8、MongoDB为什么要引入复制集?有哪些成员?

4.9、MongoDB复制集常见部署架构?

4.10、MongoDB复制集是如何保证数据高可用的?

4.11、MongoDB复制集如何同步数据?

4.12、MongoDB为什么要引入分片?

4.13、MongoDB分片集群的结构?

4.14、MongoDB分片的内部是如何管理数据的呢?

4.15、MongoDB 中Collection的数据是根据什么进行分片的呢?

4.16、MongoDB如何做备份恢复?

4.17、MongoDB如何设计文档模型?

4.18、MongoDB如何进行性能优化?

5、ElasticSearch

5.1、ElasticSearch是什么?基于Lucene的,那么为什么不是直接使用Lucene呢?

5.2、ELK 技术栈的常见应用场景?

5.3、ES中索引模板是什么?

5.4、ES中索引的生命周期管理?

5.5、ES查询和聚合的有哪些方式?

5.6、ES查询中query和filter的区别?

5.7、ES查询中match和term的区别?

5.8、ES查询中should和must的区别?

5.9、ES查询中match,match_phrase和match_phrase_prefix有什么区别?

5.10、ES查询中什么是复合查询?有哪些复合查询方式?

5.11、ES聚合中的Bucket聚合有哪些?如何理解?

5.12、ES聚合中的Metric聚合有哪些?如何理解?

5.13、ES聚合中的管道聚合有哪些?如何理解?

5.14、如何理解ES的结构和底层实现?

5.15、ES内部读取文档是怎样的?如何实现的?

5.16、ES内部索引文档是怎样的?如何实现的?

5.17、ES底层数据持久化的过程?

5.18、ES遇到什么性能问题,如何优化的?

6、JAVA面试题总述


上一篇:JAVA面试大全之数据结构和算法篇-优快云博客

致力于一个专栏将Java面试说的清清楚楚,从工作实践角度出发,尽量涵盖Java主流知识点,全面讲述Java面试题。

本篇讲述数据库相关,总共涵盖5个知识点,134道热点面试题。

1、原理和SQL

1.1、什么是事务?事务基本特性ACID?

事务指的是满足 ACID 特性的一组操作,可以通过 Commit 提交一个事务,也可以使用 Rollback 进行回滚

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hao_kkkkk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值