Hadoop基础
-  介绍下Hadoop 
-  Hadoop的特点 
-  说下Hadoop生态圈组件及其作用 
-  Hadoop主要分哪几个部分?他们有什么作用? 
-  Hadoop 1.x,2x,3.x的区别 
-  Hadoop集群工作时启动哪些进程?它们有什么作用? 
-  在集群计算的时候,什么是集群的主要瓶颈 
-  搭建Hadoop集群的xml文件有哪些? 
-  Hadoop的checkpoint流程 
-  Hadoop的默认块大小是多少?为什么要设置这么大? 
-  Block划分的原因 
-  Hadoop常见的压缩算法? 
-  Hadoop作业提交到YARN的流程? 
-  Hadoop的Combiner的作用 
-  Hadoop序列化和反序列化 
-  Hadoop的运行模式 
-  Hadoop小文件处理问题 
-  Hadoop为什么要从2.x升级到3.x? 
-  Hadoop的优缺点 
HDFS部分
-  HDFS文件写入和读取流程 
-  HDFS组成架构 
-  介绍下HDFS,说下HDFS优缺点,以及使用场景 
-  HDFS作用 
-  HDFS的容错机制 
-  HDFS的存储机制 
-  HDFS的副本机制 
-  HDFS的常见数据格式,列式存储格式和行存储格式异同点,列式存储优点有哪些? 
-  HDFS如何保证数据不丢失? 
-  HDFS NameNode高可用如何实现?需要哪些角色? 
-  HDFS的文件结构? 
-  HDFS的默认副本数?为什么是这个数量?如果想修改副本数怎么修改? 
-  介绍下HDFS的Block 
-  HDFS的块默认大小,64M和128M是在哪个版本更换的?怎么修改默认块大小? 
-  HDFS的block为什么是128M?增大或减小有什么影响? 
-  HDFS HA怎么实现?是个什么架构? 
-  导入大文件到HDFS时如何自定义分片? 
-  HDFS的mapper和reducer的个数如何确定?reducer的个数依据是什么? 
-  HDSF通过那个中间组件去存储数据 
-  HDFS跨节点怎么进行数据迁移 
-  HDFS的数据-致性靠什么保证? 
-  HDFS怎么保证数据安全 
-  HDFS中向DataNode写数据失败了怎么办 
-  Hadoop2.xHDFS快照 
-  HDFS文件存储的方式? 
-  HDFS写数据过程,写的过程中有哪些故障,分别会怎么处理? 
-  NameNode存数据吗? 
-  使用NameNode的好处 
-  HDFS中DataNode怎么存储数据的 
-  直接将数据文件上传到HDFS的表目录中,如何在表中查询到该数据? 
MapReduce部分
-  介绍下MapReduce 
-  MapReduce优缺点 
-  MapReduce架构 
-  MapReduce工作原理 
-  MapReduce哪个阶段最费时间 
-  MapReduce中的Combine是干嘛的?有什么好外? 
-  MapReduce为什么一定要有环型缓冲区 
-  MapReduce为什么一定要有Shuffle过程 
-  MapReduce的Shuffle过程及其优化 
-  Reduce怎么知道去哪里拉Map结果集? 
-  Reduce阶段都发生了什么,有没有进行分组 
-  MapReduce Shuffle的排序算法 
-  shuffle为什么要排序? 
-  说一下map是怎么到reduce的? 
-  说一下你了解的用哪几种shuffle机制? 
-  MapReduce的数据处理过程 
-  mapjoin的原理(实现)?应用场景? 
-  reducejoin如何执行(原理) 
-  MapReduce为什么不能产生过多小文件 
-  MapReduce分区及作用 
-  ReduceTask数量和分区数量关系 
-  Map的分片有多大 
-  MapReduce join两个表的流程? 
-  手撕一段简单的MapReduce程序 
-  reduce任务什么时候开始? 
-  MapReduce的reduce使用的是什么排序? 
-  MapReduce怎么确定MapTask的数量? 
-  Map数量由什么决定 
-  MapReduce的map进程和reducer进程的ivm垃圾回收器怎么选择可以提高吞吐量? 
-  MapReduce的task数目划分 
-  MapReduce作业执行的过程中,中间的数据会存在什么地方?不会存在内存中么? 
-  Mapper端进行combiner之后,除了速度会提升,那从Mapper端到Reduece端的数据量会怎么变? 
-  map输出的数据如何超出它的小文件内存之后,是落地到磁盘还是落地到HDFS中? 
-  Map到Reduce默认的分区机制是什么? 
-  结合wordcount述说MapReduce,具体各个流程,map怎么做,reduce怎么做 
-  MapReduce数据倾斜产生的原因及其解决方案 
-  Map Join为什么能解决数据倾斜 
-  MapReduce运行过程中会发生OOM,OOM发生的位置? 
-  MapReduce用了几次排序,分别是什么? 
-  MapReduce压缩方式 
-  MapReduce中怎么处理一个大文件 
YARN部分
-  介绍下YARN 
-  YARN有几个模块 
-  YARN工作机制 
-  YARN有什么优势,能解决什么问题? 
-  YARN容错机制 
-  YARN高可用 
-  YARN调度器 
-  YARN中Container是如何启动的? 
-  YARN的改进之处,Hadoop3.x相对于Hadoop 2.x? 
-  YARN监控 
二
Zookeeper面试题
-  介绍下Zookeeper是什么? 
-  Zookeeper有什么作用?优缺点?有什么应用场景? 
-  Zookeeper的选举策略,leader和follower的区别? 
-  介绍下Zookeeper选举算法 
-  Zookeeper的节点类型有哪些?分别作用是什么? 
-  Zookeeper的节点数怎么设置比较好? 
-  Zookeeper架构 
-  Zookeeper的功能有哪些 
-  Zookeeper的数据结构(树)?基于它实现的分布式锁?基于它实现的Master选举?基于它的集群管理? Zookeeper的注册(watch)机制使用场景? 
-  介绍下Zookeeper消息的发布订阅功能 
-  Zookeeper的分布式锁实现方式? 
-  Zookeeper怎么保证一致性的 
-  Zookeeper的zab协议(原子广播协议)? 
-  ZAB是以什么算法为基础的?ZAB流程? 
-  Zookeeper的通知机制 
-  Zookeeper脑裂问题 
-  Zookeeper的Paxos算法 
-  Zookeeper的协议有哪些? 
-  Zookeeper如何保证数据的一致性? 
-  Zookeeper的数据存储在什么地方? 
-  Zookeeper从三台扩容到七台怎么做? 
三
Hive面试题
-  说下为什么要使用Hive?Hive的优缺点?Hive的作用是什么? 
-  说下Hive是什么?跟数据仓库区别? 
-  Hive架构 
-  Hive内部表和外部表的区别? 
-  为什么内部表的删除,就会将数据全部删除,而外部表只删除表结构?为什么用外部表更好? 
-  Hive建表语句?创建表时使用什么分隔符? 
-  Hive删除语句外部表删除的是什么? 
-  Hive数据倾斜以及解决方案 
-  Hive如果不用参数调优,在map和reduce端应该做什么 
-  Hive的用户自定义函数实现步骤与流程 
-  Hive的三种自定义函数是什么?实现步骤与流程?它们之间的区别?作用是什么? 
-  Hive的cluster by、sort bydistribute by、orderby区别? 
-  Hive分区和分桶的区别 
-  Hive的执行流程 
-  Hive SQL转化为MR的过程? 
-  Hive SQL优化处理 
-  Hive的存储引擎和计算引擎 
-  Hive的文件存储格式都有哪些 
-  Hive中如何调整Mapper和Reducer的数目 
-  介绍下知道的Hive窗口函数,举一些例子 
-  Hive的count的用法 
-  Hive的union和unionall的区别 
-  Hive的join操作原理,leftjoin、right join、inner join、outer join的异同? 
-  Hive如何优化join操作 
-  Hive的mapjoin 
-  Hive语句的运行机制,例如包含where、having、group by、orderby,整个的执行过程? 
-  Hive使用的时候会将数据同步到HDFS,小文件问题怎么解决的? 
-  Hive Shuffle的具体过程 
-  Hive有哪些保存元数据的方式,都有什么特点? 
-  Hive SOL实现查询用户连续登陆,讲讲思路 
-  Hive的开窗函数有哪些 
-  Hive存储数据吗 
-  Hive的SOL转换为MapReduce的过程? 
-  Hive的函数:UDF、UDAF、UDTF的区别? 
-  UDF是怎么在Hive里执行的 
-  Hive优化 
-  row_number,rank,dense_rank的区别 
-  Hive count(distinct)有几个reduce,海量数据会有什么问题 
-  HQL:行转列、列转行 
-  一条HQL从代码到执行的过程 
-  了解Hive SQL吗?讲讲分析函数? 
-  分析函数中加Order By和不加Order By的区别? 
-  Hive优化方法 
-  Hive里metastore是干嘛的 
-  HiveServer2是什么? 
-  Hive表字段换类型怎么办 
-  parquet文件优势 
四
Flume面试题
-  介绍下Flume 
-  Flume架构 
-  Flume有哪些Source 
-  说下Flume事务机制 
-  介绍下Flume采集数据的原理?底层实现? 
-  Flume如何保证数据的可靠性 
-  Flume传输数据时如何保证数据一致性(可靠性) 
-  Flume拦截器 
-  如何监控消费型Flume的消费情况 
-  Kafka和Flume是如何对接的? 
-  为什么要使用Flume进行数据采集 
五
Kafka面试题
-  介绍下Kafka,Kafka的作用?Kafka的组件?适用场景? 
-  Kafka作为消息队列,它可解决什么样的问题? 
-  说下Kafka架构 
-  说下Kafka的特点,优缺点 
-  Kafka相比于其它消息组件有什么好处? 
-  Kafka生产者与消费者 
-  Kafka分区容错性 
-  Kafka的消费端的数据一致性 
-  Kafka的leader挂掉之后处理方法 
-  说下Kafka的ISR机制 
-  Kafka的选举机制 
-  Kafka的ISR、OSR和ACK介绍,ACK分别有几种值? 
-  Kafka的工作原理? 
-  Kafka怎么保证数据不丢失,不重复? 
-  Kafka分区策略 
-  Kafka如何尽可能保证数据可靠性? 
-  Kafka数据丢失怎么处理? 
-  Kafka如何保证全局有序? 
-  牛产者消费者模式与发布订阅模式有何异同? 
-  Kafka的消费者组是如何消费数据的 
-  Kafka的offset管理 
-  Kafka为什么同一个消费者组的消费者不能消费相同的分区? 
-  如果有一条offset对应的数据,消费完成之后,手动提交失败,如何处理? 
-  正在消费一条数据,Kafka挂了,重启以后,消费的offset是哪一个 
-  Kafka支持什么语义,怎么实现ExactlyOnce? 
-  Kafka的消费者和消费者组有什么区别?为什么需要消费者组? 
-  Kafka producer的写入数据过程? 
-  Kafka producer的ack设署 
-  Kafka的ack机制,解决了什么问题? 
-  Kafka读取消息是推还是拉的模式?有什么好? 
-  Kafka如何实现高吞吐的原理? 
-  说下Kafka中的Partition? 
-  Kafka是如何进行数据备份的? 
-  Kafka里面存的数据格式是什么样的? 
-  Kafka是如何清理过期文件的? 
-  Kafka的一条message中包含了哪些信息? 
-  Kafka如何保证数据的ExactlyOnce? 
-  Kafka消费者怎么保证ExactlyOnce 
-  Kafka监控实现? 
-  Kafka中的数据能彻底删除吗? 
-  Kafka复制机制? 
-  Kafka分区多副本机制? 
-  Kafka分区分配算法 
-  Kafka蓄水池机制 
-  Kafka如何实现享等性? 
-  Kafka的offset存在哪? 
-  Kafka中如何保证数据一致性? 
-  Kafka新旧API区别 
-  Kafka消息在磁盘上的组织方式 
-  Kafka在哪些地方会有选举过程,使用什么工具支持选举? 
-  Kafka搭建过程要配置什么参数? 
-  Kafka的单播和多播 
-  Kafka的高水位和Leader Epoch 
-  Kafka的分区器、拦截器、序列化器? 
-  Kafka连接Spark Streaming的几种方式 
-  Kafka的生成者客户端有几个线程? 
-  Kafka怎么防止脑裂 
-  Kafka高可用体现在哪里 
-  Zookeeper在Kafka的作用 
六
HBase面试题
-  介绍下HBase 
-  HBase优缺点 
-  说下HBase原理 
-  介绍下HBase架构 
-  HBase读写数据流程 
-  HBase的读写缓存 
-  在删除HBase中的一个数据的时候,它什么时候真正的进行删除呢?当你进行删除操作,它是立马就把数据删除掉了吗? 
-  HBase中的二级索引 
-  HBase的RegionServer宕机以后怎么恢复的? 
-  HBase的一个region由哪些东西组成? 
-  HBase高可用怎么实现的? 
-  为什么HBase适合写多读少业务? 
-  列式数据库的适用场景和优势?列式存储的特点? 
-  HBase的rowkey设计原则 
-  HBase的rowkey为什么不能超过一定的长度?为什么要唯一?rowkey太长会影响Hfile的存储是吧? 
-  HBase的RowKey设置讲究有什么原因 
-  HBase的大合并、小合并是什么? 
-  HBase和关系型数据库(传统数据库)的区别(优点)? 
-  HBase数据结构 
-  HBase为什么随机查询很快? 
-  HBase的LSM结构 
-  HBase的Get和Scan的区别和联系? 
-  HBase数据的存储结构(底层存储结构) 
-  HBase数据compact流程? 
-  HBase的预分区 
-  HBase的热点问题 
-  HBase的memstore冲刷条件 
-  HBase的MVCC 
-  HBase的大合并与小合并,大合并是如何做的?为什么要大合并 
-  既然HBase底层数据是存储在HDFS上,为什么不直接使用HDFS,而还要用HBase 
-  HBase和Phoenix的区别 
-  HBase支持SQL操作吗 
-  HBase适合读多写少还是写多读少 
-  HBase表设计 
-  Region分配 
-  HBase的Region切分 
七
Spark面试题
-  Spark的任务执行流程 
-  Spark的运行流程 
-  Spark的作业运行流程是怎么样的? 
-  Spark的特点 
-  Spark源码中的任务调度 
-  Spark作业调度 
-  Spark的架构 
-  Spark的使用场景 
-  Spark on standalone模型、YARN架构模型(画架构图) 
-  Spark的yarn-cluster涉及的参数有哪些? 
-  Spark提交job的流程 
-  Spark的阶段划分 
-  Spark处理数据的具体流程说下 
-  Sparkjoin的分类 
-  Spark map join的实现原理 
-  介绍下Spark Shuffle及其优缺点 
-  什么情况下会产生Spark Shuffle? 
-  为什么要Spark Shuffle? 
-  Spark为什么快? 
-  Spark为什么适合迭代处理? 
-  Spark数据倾斜问题,如何定位,解决方案 
-  Spark的stage如何划分?在源码中是怎么判断属于Shuffle Map Stage或Result Stage的? 
-  Spark join在什么情况下会变成窄依赖? 
-  Spark的内存模型? 
-  Spark分哪几个部分(模块)?分别有什么作用(做什么,自己用过哪些,做过什么)? 
-  RDD的宽依赖和窄依赖,举例一些算子 
-  Spark SQL的GroupBy会造成窄依赖吗? 
-  GroupBy是行动算子吗 
-  Spark的宽依赖和窄依赖,为什么要这么划分? 
-  说下Spark中的Transform和Action,为什么Spark要把操作分为Transform和Action?常用的列举一些,说下算子原理 
-  Spark的哪些算子会有shuffle过程? 
-  Spark有了RDD,为什么还要有Dataform和DataSet? 
-  Spark的RDD、DataFrame、DataSet、DataStream区别? 
-  Spark的Job、Stage、Task分别介绍下,如何划分? 
-  Application、job、Stage、task之间的关系 
-  Stage内部逻辑 
-  为什么要根据宽依赖划分Stage?为 
-  什么要划分Stage 
-  Stage的数量等于什么 
-  对RDD、DAG和Task的理解 
-  DAG为什么适合Spark? 
-  介绍下Spark的DAG以及它的生成过程 
-  DAGScheduler如何划分?干了什么活? 
-  Spark容错机制? 
-  RDD的容错 
-  Executor内存分配? 
-  Spark的batchsize,怎么解决小文件合并问题? 
-  Spark参数(性能)调优 
-  介绍一下Spark怎么基于内存计算的 
-  说下什么是RDD(对RDD的理解)?RDD有哪些特点?说下知道的RDD算子 
-  RDD底层原理 
-  RDD属性 
-  RDD的缓存级别? 
-  Spark广播变量的实现和原理? 
-  reduceByKey和groupByKey的区别和作用? 
-  reduceByKey和reduce的区别? 
-  使用reduceByKey出现数据倾斜怎么办? 
-  Spark SQL的执行原理? 
-  Spark SQL的优化? 
-  说下Spark checkpoint 
-  Spark SQL与DataFrame的使用? 
-  Sparksql自定义函数?怎么创建DataFrame? 
-  HashPartitioner和RangePartitioner的实现 
-  Spark的水塘抽样 
-  DAGScheduler、TaskScheduler、SchedulerBackend实现原理 
-  介绍下Sparkclient提交application后,接下来的流程? 
-  Spark的几种部署方式 
-  在Yarn-client情况下,Driver此时在哪 
-  Spark的cluster模式有什么好处 
-  Driver怎么管理executor 
-  Spark的map和flatmap的区别? 
-  Spark的cache和persist的区别?它们是transformaiton算子还是action算子? 
-  Saprk Streaming从Kafka中读取数据两种方式? 
-  Spark Streaming的工作原理? 
-  Spark Streaming的DStream和DStreamGraph的区别? 
-  Spark输出文件的个数,如何合并小文件? 
-  Spark的driver是怎么驱动作业流程的? 
-  Spark SQL的劣势? 
-  介绍下Spark Streaming和Structed Streaming 
-  Spark为什么比Hadoop速度快? 
-  DAG划分Spark源码实现? 
-  Spark Streaming的双流join的过程,怎么做的? 
-  Spark的Block管理 
-  Spark怎么保证数据不丢失 
-  Spark SQL如何使用UDF? 
-  Spark温度二次排序 
-  Spark实现wordcount 
-  Spark Streaming怎么实现数据持久化保存? 
-  Spark SQL读取文件,内存不够使用,如何处理? 
-  Spark的lazy体现在哪里? 
-  Spark中的并行度等于什么 
-  Spark运行时并行度的设署 
-  Spark SQL的数据倾斜 
-  Spark的exactly-once 
-  Spark的RDD和partition的联系 
-  park 3.0特性 
-  Spark计算的灵活性体现在哪里 
八
Flink面试题
-  Flink架构 
-  Flink的窗口了解哪些,都有什么区别,有哪几种?如何定义? 
-  Flink窗口函数,时间语义相关的问题 
-  介绍下Flink的watermark(水位线),watermark需要实现哪个实现类,在何处定义?有什么作用? 
-  Flink的窗口(实现)机制 
-  说下Flink的CEP 
-  说一说Flink的Checkpoint机制 
-  Flink的Checkpoint底层如何实现的?savepoint和checkpoint有什么区别? 
-  Flink的Checkpoint流程 
-  Flink Checkpoint的作用 
-  Flink中Checkpoint超时原因 
-  Flink的ExactlyOnce语义怎么保证? 
-  Flink的端到端ExactlyOnce 
-  Flink的水印(Watermark),有哪几种? 
-  Flink的时间语义 
-  Flink相比于其它流式处理框架的优点? 
-  Flink和Spark的区别?什么情况下使用Flink?有什么优点? 
-  Flink backPressure反压机制,指标监控你是怎么做的? 
-  Flink如何保证一致性? 
-  Flink支持JobMaster的HA啊?原理是怎么样的? 
-  如何确定Flink任务的合理并行度? 
-  Flink任务如何实现端到端一致? 
-  Flink如何处理背(反)压? 
-  Flink解决数据延迟的问题 
-  Flink消费kafka分区的数据时flink件务并行度之间的关系 
-  使用flink-client消费kafka数据还是使用flink-connector消费 
-  如何动态修改Flink的配置,前提是Flink不能重启 
-  Flink流批一体解释一下 
-  说一下Flink的check和barrier 
-  说一下Flink状态机制 
-  Flink广播流 
-  Flink实时topN 
-  在实习中一般都怎么用Flink 
-  Savepoint知道是什么吗 
-  为什么用Flink不用别的微批考虑过吗 
-  解释一下啥叫背压 
-  Flink分布式快照 
-  Flink SQL解析过程 
-  Flink on YARN模式 
-  Flink如何保证数据不丢失 
九
数据仓库面试题
-  介绍下数据仓库 
-  数仓的基本原理 
-  数仓架构 
-  数据仓库分层(层级划分),每层做什么?分层的好处? 
-  数据分层是根据什么? 
-  数仓分层的原则与思路 
-  数仓建模常用模型吗?区别、优缺点? 
-  星型模型和雪花模型的区别?应用场景?优劣对比 
-  数仓建模有哪些方式? 
-  数仓建模的流程? 
-  维度建模的步骤,如何确定这些维度的 
-  维度建模和范式建模区别 
-  维度表和事实表的区别? 
-  什么是ER模型? 
-  OLAP、OLTP解释(区别)三范式是什么,举些例子 
-  维度设计过程,事实设计过程 
-  维度设计中有整合和拆分,有哪些方法,并详细说明 
-  事实表设计分几种,每一种都是如何在业务中使用 
-  单事务事实表、多事务事实表区别与作用 
-  说下一致性维度、一致性事实、总线矩阵 
-  从ODS层到DW层的ETL,做了哪些工作? 
-  数据仓库与(传统)数据库的区别? 
-  数据质量是怎么保证的,有哪些方法保证 
-  怎么衡量数仓的数据质量,有哪些指标 
-  增量表、全量表和拉链表 
十
综合部分面试题
-  Saprk和Flink的区别 
-  Flink和Spark Streaming处理数据的时候,分别怎么做?各自优势点? 
-  为什么你觉得Flink比Spark Streaming好? 
-  SaprkStreaming相比Flink有什么优点 
-  Flink和Spark对于批处理的区别? 
-  Flink+Kafka怎么保证精准一次性消费 
-  Hive和MySQL不同? 
-  Hive与HBase的区别? 
-  Hive与HDFS的关系与区别? 
-  Spark和Hive的区别 
-  Spark和Hive的联系 
-  Hive和传统数据库的区别 
-  Spark和Hive对比,谁更好,你觉得为什么 
-  MySQL和HBase的对比(区别) 
-  Spark和Hadoop之间的区别 
-  Spark为什么比MapReduce运行快?原因有哪些? 
-  Spark和MapReduce之间的区别?各自优缺点? 
-  Spark相比MapReduce的优点 
-  是不是用了Spark就不需要Hadoop了? 
-  SparkStreaming和Storm的区别 
-  Flume和Kafka的区别? 
-  为什么使用Flume+Kafka? 
-  Flume和Kafka是怎么配置的 
-  Spark Streaming与Kafka集成,如何保证Exactly Once语义 
-  Spark Shuffle和MapReduce Shuffle的区别?说下各自的特点和过程 
-  若Spark要保存数据到HDFS上,要用什么算子? 
-  Hive SQL和Spark SOL的区别?各自优势和不足?为什么不用Spark SQL替代Hive SOL? 
-  分布式存储系统和分布式计算框架区别? 
-  ETL过程? 
-  数据湖和数据仓库的区别 
-  离线处理和实时处理的区别 
-  实时数仓和离线数仓的区别? 
-  Hadoop (HDFS)和MySQL的区别? 
-  说说Storm、Flink、Spark的区别,各自的优缺点,适用场景 
-  HDFS与HBase有什么关系? 
-  存储格式的选择,行式存储与列式存储的优劣 
-  Hive、HBase、HDFS之间的关系 
-  Hive中的数据在哪存放,MySQL的在哪存放? 
-  当数据量非常多,HDFS扛不住Flume采集的压力怎么办 
-  Hadoop和gp(GreenPlum)区别 
-  MapReduce/Spark手撕WordCount 
-  为什么要使用Scala开发Spark而不使用python 
-  Scala和Java有什么区别 
十一
数据库面试题
-  数据库中的事务是什么,MySQL中是怎么实现的 
-  MySQL事务的特性? 
-  数据库事务的隔离级别?解决了什么问题?默认事务隔离级别? 
-  脏读,幻读,不可重复读的定义 
-  MySQL怎么实现可重复读? 
-  数据库第三范式和第四范式区别? 
-  MySQL的存储引擎? 
-  数据库有哪些锁? 
-  说下悲观锁、乐观锁 
-  分布式数据库是什么? 
-  死锁产生的条件是什么?如何预防死锁? 
-  介绍下数据库的ioin(内连接,外连接,全连接),内连接和外连接(左,右连接)的区别 
-  MySQL的join过程 
-  MySQL有哪些存储引擎? 
-  数据库中存储引擎MvlSAM与InnoDB的区别 
-  Mylsam适用于什么场景? 
-  InnoDB和Mvlsam针对读写场景? 
-  MySQL Innodb实现了哪个隔离级别? 
-  InnoDB数据引擎的特点 
-  InnoDB用什么索引 
-  Hash索引缺点 
-  数据库索引的类型,各有什么优缺点? 
-  MySQL的索引有哪些?索引如何优化? 
-  有哪些数据结构可以作为索引呢? 
-  B树与B+树的区别? 
-  为什么使用B+树作为索引结构? 
-  不使用B+树,可以用那个数据类型实现一个索引结构 
-  介绍下MySQL的联合索引联合索使用原则 
-  数据库有必要建索引吗? 
-  MySQL缺点? 
-  什么是脏读?怎么解决? 
-  为什么要有三大范式,建数据库时一定要遵循吗? 
-  数据库一般对哪些列建立索引?索引的数据结构? 
-  MySOL中索引的建立需要考虑哪些问题 
-  关系型数据库与非关系型数据库区别 
-  MySQL与Redis区别 
-  列式数据库和行式数据库优劣比对 
-  除了UTF-8还有什么编码格式 
-  布隆过滤器的基本原理是什么?局限性是什么?使用什么方法可以增加删除的功能? 
-  你在哪些场景下使用了布隆过滤器? 
-  SQL慢查询的解决方案(优化)? 
-  聚簇索引、非聚簇索引说一下 
-  哈希索引和B+相比的优势和劣势? 
-  MVCC知道吗 










