数据库高频面试题汇总

数据库基础知识
1、为什么要使用数据库
2、什么是SQL?
3、什么是MySQL?
4、数据库三大范式是什么
5、mysql有关权限的表都有哪几个
6、MySQL的binlog有有几种录入格式?分别有什么区别?

数据类型
1、mysql有哪些数据类型


1、MySQL存储引擎MyISAM与InnoDB区别
2、MyISAM索引与InnoDB索引的区别?
3、InnoDB引擎的4大特性
4、存储引擎选择

索引
1、什么是索引?
2、索引有哪些优缺点?
3、索引使用场景(重点)
4、索引有哪几种类型?
5、索引的数据结构(b树,hash)
6、索引的基本原理
7、索引算法有哪些?
8、索引设计的原则?
9、创建索引的原则(重中之重)
10、创建索引的三种方式,删除索引
11、创建索引时需要注意什么?
12、使用索引查询一定能提高查询的性能吗?为什么
13、百万级别或以上的数据如何删除
14、前缀索引
15、什么是最左前缀原则?什么是最左匹配原则
16、B树和B+树的区别
17、使用B树的好处
18、使用B+树的好处
19、Hash索引和B+树所有有什么区别或者说优劣呢?
20、数据库为什么使用B+树而不是B树
21、B+树在满足聚簇索引和覆盖索引的时候不需要回表查询数据,
22、什么是聚簇索引?何时使用聚簇索引与非聚簇索引
23、非聚簇索引一定会回表查询吗?
24、联合索引是什么?为什么需要注意联合索引中的顺序?


1、什么是数据库事务?
2、事物的四大特性(ACID)介绍一下?
3、什么是脏读?幻读?不可重复读?
4、什么是事务的隔离级别?MySQL的默认隔离级别是什么?


1、对MySQL的锁了解吗
2、隔离级别与锁的关系
3、按照锁的粒度分数据库锁有哪些?锁机制与InnoDB锁算法
4、从锁的类别上分MySQL都有哪些锁呢?像上面那样子进行锁定岂不是有点阻碍并发效率了
5、MySQL中InnoDB引擎的行锁是怎么实现的?
6、InnoDB存储引擎的锁的算法有三种
7、什么是死锁?怎么解决?
8、数据库的乐观锁和悲观锁是什么?怎么实现的?

视图
1、为什么要使用视图?什么是视图?
2、视图有哪些特点?
3、视图的使用场景有哪些?
4、视图的优点
5、视图的缺点
6、什么是游标?

存储过程与函数
1、什么是存储过程?有哪些优缺点?

发器
1、什么是触发器?触发器的使用场景有哪些?
2、MySQL中都有哪些触发器?

常用SQL语句
1、SQL语句主要分为哪几类
2、超键、候选键、主键、外键分别是什么?
3、SQL 约束有哪几种?
4、六种关联查询
5、什么是子查询
6、子查询的三种情况
7、mysql中 in 和 exists 区别
8、varchar与char的区别
9、varchar(50)中50的涵义
10、int(20)中20的涵义
11、mysql为什么这么设计
12、mysql中int(10)和char(10)以及varchar(10)的区别
13、FLOAT和DOUBLE的区别是什么?
14、drop、delete与truncate的区别
15、UNION与UNION ALL的区别?

SQL优化
1、如何定位及优化SQL语句的性能问题?创建的索引有没有被使用到?或者说怎么才可以知道这条语句运行很慢的原因?
2、SQL的生命周期?
3、大表数据查询,怎么优化
4、超大分页怎么处理?
5、mysql 分页
6、慢查询日志
7、关心过业务系统里面的sql耗时吗?统计过慢查询吗?对慢查询都怎么优化过?
8、为什么要尽量设定一个主键?
9、主键使用自增ID还是UUID?
10、字段为什么要求定义为not null?
11、如果要存储用户的密码散列,应该使用什么字段进行存储?
12、优化查询过程中的数据访问
13、优化长难的查询语句
14、优化特定类型的查询语句
15、优化关联查询
16、优化子查询
17、优化LIMIT分页
18、优化UNION查询
19、优化WHERE子句

数据库优化
1、为什么要优化
2、数据库结构优化
3、MySQL数据库cpu飙升到500%的话他怎么处理?
4、大表怎么优化?某个表有近千万数据,CRUD比较慢,如何优化?分库分表了是怎么做的?分表分库了有什么问题?有用到中间件么?他们的原理知道么?
垂直分表:
适用场景
缺点
水平分表:
适用场景
水平切分的缺点
5、MySQL的复制原理以及流程
6、读写分离有哪些解决方案?
7、备份计划,mysqldump以及xtranbackup的实现原理
8、数据表损坏的修复方式有哪些?

答案详情如下:

#阿里巴巴钉钉21届实习招聘内推##面试题目#
全部评论
楼主,答案挂掉了,可以补一下吗
1 回复 分享
发布于 2020-09-02 11:51
求答案
点赞 回复 分享
发布于 2022-03-30 21:49
答案呢
点赞 回复 分享
发布于 2020-10-13 18:50
mysql
点赞 回复 分享
发布于 2020-09-15 10:23
楼主,答案没有了
点赞 回复 分享
发布于 2020-07-30 20:21
mysql
点赞 回复 分享
发布于 2020-05-03 23:30
mysql
点赞 回复 分享
发布于 2020-05-01 15:32
mysql
点赞 回复 分享
发布于 2020-05-01 14:21
请问数据库一般找哪些岗位,后端开发吗?
点赞 回复 分享
发布于 2020-04-30 17:45
mysql
点赞 回复 分享
发布于 2020-04-30 17:38

相关推荐

一面时间10.29面试了50min,但面试过程中网络经常出问题1、自我介绍2、你觉得大数据专业和计算机科学等专业有啥差异?3、你觉得哪门你的印象比较深刻、对你的影响比较大?4、你觉得大数据和传统数据库的主要区别在哪?5、你觉得事务是什么意思?举个例子6、你觉得整个事务是单纯数据库就可以完成的吗?7、事务能够解决怎样的问题?为啥需要事务——》什么情况下会出现幻读、脏读——》为什么大家不能一个一个读呢?——》并发8、大数据中有并发这种东西吗——》(有时候解决一个问题是靠技术解决,有时是靠一个规范,有的是使用模式)——》数仓怎么解决这个问题?——》(面试官)从技术层面上来讲早期HDFS是有这个问题的,并行写是有问题的,但这个问题是可以忍受的,一是因为不太用的到并发,实际数仓建设中一个表里在一定时间基本只有一个东西在往里写(delete,insert),二是因为出了点问题是可以接受的,早期谷歌大数据搜索,现在记录日志,很少有数仓一边写一边读9、大数据在分布式上的作用是啥,从存储、计算的层面来讲哪些比较有特点——》你觉得100台1G的服务器比较贵还是1台100G的服务器比较贵——》(面试官)100台服务器一直都是比较贵,电力、散热等,但不怎么容易坏——》Yarn解决的啥问题——》啥是计算资源——》讲讲Spark的计算这块介绍一下10、场景:你到现场,没有任何数据平台,给一份文件(数据量极大,以京东白条这种为例),第一列是时间,第二列是用户人名,第三列是消费金额,我现在要做个排序,找出单日消费前10的人,服务器上性能较一般,但啥语言工具都有,你会怎么解决?——》你觉得并行和并发有什么区别——》(面试官)一个大数据任务本质上处理方法是一样的,无非节点多就并行做,节点少就串行做,节点不多不少就整体并行,每个并行里是串行。11、聊聊你的离线数仓——》为什么企业要建数仓?——》数仓分层的依据——》ODS的中文是啥(回答错了)——》如果ODS和数仓只能留一个,你准备留哪个?(回答错,实际是保留ODS)——》你既然回答的理直气壮,那你觉得ODS为什么还留着,为什么没被干掉?(面试官跳过了)12、你觉得数仓几个层要被干掉一个,你觉得哪个层要被合并——》DWS(?)13、你对维度建模理论有了解吗?——》你觉得维度建模理论提出是为了解决啥问题,为什么要搞维度表,事实表,为什么不搞个宽表,2、300个字段堆那?——》你觉得实际工作中宽表用的多不多——》(面试官原话)所以你觉得维度建模理论是扯淡吗(笑)——》你觉得谁喜欢宽表?——》(面试官)政府部门的人相当喜欢宽表,实际工作环境中,不查数据,一般都是要求下载为excel,他只关心本部门的数据,那个数据没有那么多,他也不会写SQL,就要求你整到一起下载到excel让他去操作。(面试官)为什么这些理论和实际差别很大呢——》早期数仓很贵ODS最大的价值——》万一领导马上就要数据,数仓来不及跑,可以直接从ODS拿,像泄洪闸一样的方便的东西,另外一般参与ODS建设的人的资历比较老,ODS可以减小,但不能被干掉。面试官建议:你的逻辑能力、学习能力都不错,再找个方向去积累,数仓有些没那么牛,但可以做很久。
第一次找实习,我建议__
点赞 评论 收藏
分享
评论
5
199
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务