2022最新Java面经整理 | 数据库篇(一)MySQL

2022最新Java面经整理 | 数据库篇(一)MySQL

目录

一、基础

1、数据库范式

2、视图

3、游标

4、存储过程与函数

5、触发器

6、常用问题

二、事务

1、事务四大特性(ACID)

2、脏读、不可重复读、幻读

3、事务隔离级别

三、索引

1、啥是索引

2、索引的分类

3、索引的实现方式

4、索引的基本原理

5、索引的创建原则

6、百万级别或以上的数据如何删除?

7、B树和B+树的区别

8、Hash索引和B+树所有有什么区别或者说优劣呢?

9、数据库为什么使用B+树而不是B树?

10、什么是聚簇索引?何时使用聚簇索引与非聚簇索引?

11、非聚簇索引一定会回表查询吗?

12、联合索引是什么?为什么需要注意联合索引中的顺序?

四、MySQL 存储引擎

1、MyISAM

2、InnoDB

3、MEMORY

4、三种存储引擎的特点

5、MyISAM和InnoDB区别

五、锁

1、锁分类

2、隔离级别与锁的关系

3、死锁

4、乐观锁和悲观锁

5、MySQL中InnoDB引擎的行锁是怎么实现的?

6、MVCC 锁并发

六、SQL的生命周期

七、SQL优化

1、关心过业务系统里面的sql耗时吗?统计过慢查询吗?对慢查询都怎么优化过?

2、优化查询过程中的数据访问

3、优化长难的查询语句

4、优化特定类型的查询语句

5、优化关联查询

6、优化子查询

7、优化LIMIT分页

8、优化UNION查询

9、优化WHERE子句

八、数据库优化

1、数据库结构优化

2、大表数据查询,怎么优化

3、超大分页怎么处理?

4、慢查询日志

5、MySQL数据库cpu飙升到500%的话他怎么处理?

6、大表怎么优化?某个表有近千万数据,CRUD比较慢,如何优化?分库分表了是怎么做的?分表分库了有什么问题?有用到中间件么?他们的原理知道么?

九、分库分表(一)

1、垂直拆分

2、水平拆分

3、数据库分片的两种常见方案

4、分库分表后面临的问题

九、分库分表(二)

1、数据切分

2、垂直切分

3、水平切分(重点)

4、数据切分导致的一些问题

5、数据源管理的问题

6、分布式事务的解决方案

十、主从复制、读写分离

1、主从复制

2、读写分离有哪些解决方案?

十、其他问题

1、MySQL有关权限的表都有哪几个

2、MySQL的binlog有有几种录入格式?分别有什么区别?

3、MyISAM与InnoDB区别

4、MyISAM索引与InnoDB索引的区别?

5、为什么要尽量设定一个主键?

6、主键使用自增ID还是UUID?

7、字段为什么要求定义为not null?

8、如果要存储用户的密码散列,应该使用什么字段进行存储?

9、索引是个什么样的数据结构呢?

10、Hash索引和B+树所有有什么区别或者说优劣呢?

11、上面提到了B+树在满足聚簇索引和覆盖索引的时候不需要回表查询数据,什么是聚簇索引?

12、非聚簇索引一定会回表查询吗?

13、在建立索引的时候,都有哪些需要考虑的因素呢?

14、联合索引是什么?为什么需要注意联合索引中的顺序?

15、创建的索引有没有被使用到?或者说怎么才可以知道这条语句运行很慢的原因?

16、那么在哪些情况下会发生针对该列创建了索引但是在查询的时候并没有使用呢?

16、同时有多个事务在进行会怎么样呢?

17、Innodb使用的是哪种隔离级别呢?

18、关于MVVC

19、在MVCC并发控制中,读操作可以分成两类:

20、哈希索引的优势

21、哈希索引不适用的场景

22、什么是表分区?

23、表分区与分表的区别

24、表分区有什么好处?

25、分区表的限制因素

26、如何判断当前MySQL是否支持分区?

27、MySQL支持的分区类型有哪些?

28、行级锁定的优点:

29、行级锁定的缺点:

30、MySQL优化

31、key和index的区别

32、数据库表创建注意事项


小伙伴们想要以上答案的和更多相关学习资料请点赞收藏+评论转发+关注我之后私信我,注意回复【000】即可获取更多免费资料!

猜你喜欢

转载自blog.csdn.net/m0_67698950/article/details/126998255