Java工程师 高频面试题汇总之「数据库篇」
1. SQL
1.1 介绍一下数据库分页1.2 介绍一下SQL中的聚合函数
1.3 表跟表是怎么关联的?
1.4 说一说你对外连接的了解
1.5 说一说数据库的左连接和右连接
1.6 SQL中怎么将行转成列?
1.7 谈谈你对SQL注入的理解
1.8 将一张表的部分数据更新到另一张表,该如何操作呢?
1.9 WHERE和HAVING有什么区别?
2. 索引
2.1 说一说你对MySQL索引的理解
2.2 索引有哪几种?
2.3 如何创建及保存MySQL的索引?
2.4 MySQL怎么判断要不要加索引?
2.5 只要创建了索引,就一定会走索引吗?
2.6 如何判断数据库的索引有没有生效?
2.7 如何评估一个索引创建的是否合理?
2.8 索引是越多越好吗?
2.9 数据库索引失效了怎么办?
2.10 所有的字段都适合创建索引吗?
2.11 说一说索引的实现原理
2.12 介绍一下数据库索引的重构过程
2.13 MySQL的索引为什么用B+树?
2.14 联合索引的存储结构是什么,它的有效方式是什么?
2.15 MySQL的Hash索引和B树索引有什么区别?
2.16 聚簇索引和非聚簇索引有什么区别?
2.17 什么是联合索引?
2.18 select in语句中如何使用索引?
2.19 模糊查询语句中如何使用索引?
2.2 索引有哪几种?
2.3 如何创建及保存MySQL的索引?
2.4 MySQL怎么判断要不要加索引?
2.5 只要创建了索引,就一定会走索引吗?
2.6 如何判断数据库的索引有没有生效?
2.7 如何评估一个索引创建的是否合理?
2.8 索引是越多越好吗?
2.9 数据库索引失效了怎么办?
2.10 所有的字段都适合创建索引吗?
2.11 说一说索引的实现原理
2.12 介绍一下数据库索引的重构过程
2.13 MySQL的索引为什么用B+树?
2.14 联合索引的存储结构是什么,它的有效方式是什么?
2.15 MySQL的Hash索引和B树索引有什么区别?
2.16 聚簇索引和非聚簇索引有什么区别?
2.17 什么是联合索引?
2.18 select in语句中如何使用索引?
2.19 模糊查询语句中如何使用索引?
3. 事务
3.1 说一说你对数据库事务的了解
3.2 事务有哪几种类型,它们之间有什么区别?
3.3 MySQL的ACID特性分别是怎么实现的?
3.4 谈谈MySQL的事务隔离级别
3.5 MySQL的事务隔离级别是怎么实现的?
3.6 事务可以嵌套吗?
3.7 如何实现可重复读?
3.8 如何解决幻读问题?
3.9 MySQL事务如何回滚?
3.2 事务有哪几种类型,它们之间有什么区别?
3.3 MySQL的ACID特性分别是怎么实现的?
3.4 谈谈MySQL的事务隔离级别
3.5 MySQL的事务隔离级别是怎么实现的?
3.6 事务可以嵌套吗?
3.7 如何实现可重复读?
3.8 如何解决幻读问题?
3.9 MySQL事务如何回滚?
4. 锁
4.1 了解数据库的锁吗?
4.2 介绍一下间隙锁
4.3 InnoDB中行级锁是怎么实现的?
4.4 数据库在什么情况下会发生死锁?
4.5 说说数据库死锁的解决办法
4.2 介绍一下间隙锁
4.3 InnoDB中行级锁是怎么实现的?
4.4 数据库在什么情况下会发生死锁?
4.5 说说数据库死锁的解决办法
5. 优化
5.1 说一说你对数据库优化的理解
5.2 该如何优化MySQL的查询?
5.3 怎样插入数据才能更高效?
5.4 表中包含几千万条数据该怎么办?
5.5 MySQL的慢查询优化有了解吗?
5.6 说一说你对explain的了解
5.7 explain关注什么?
5.2 该如何优化MySQL的查询?
5.3 怎样插入数据才能更高效?
5.4 表中包含几千万条数据该怎么办?
5.5 MySQL的慢查询优化有了解吗?
5.6 说一说你对explain的了解
5.7 explain关注什么?
6. 其他
6.1 介绍一下数据库设计的三大范式
6.2 说一说你对MySQL引擎的了解
6.3 说一说你对redo log、undo log、binlog的了解
6.4 谈谈你对MVCC的了解
6.5 MySQL主从同步是如何实现的?
6.2 说一说你对MySQL引擎的了解
6.3 说一说你对redo log、undo log、binlog的了解
6.4 谈谈你对MVCC的了解
6.5 MySQL主从同步是如何实现的?