大白话描述SQL面试的知识点

一、SQL(结构化查询语言)

  1. SQL的分类:

       基本需要了解的:MySQL(99SQL) 、HQL(HiveSQL)、SparkSQL、ImpalaSQL、Oracle

  1. SQL的应用:

       MySQL数据库用于存放元数据较多、小公司主要用MySQL(比较多) 用的SQL是标准SQL;

       Oracle 数据库用于存放公司的业务数据,交易数据。 用的也是标准SQL (其中和MySQL中的字段类型有一些区别)

       Hive 一般是用来做数据仓库的(做大数据的基本上需要用到)查询时用的HQL (面试问的HiveSQL和标准SQL有哪些区别较多)

       Spark 一般对实时性要求高的公司用(面试问的比较多的时SparkSQL和HiveSQL的区别)

       ImpalaSQL项目中有写到的需要重点去查下SQL(ImpalaSQL它最关键的是不支持update,还有时间类型公司一般用varchar还是timestamp)

二、MySQL知识点:

1. 通用模块

整体概念;

执行流程和书写流程(主要是执行流程);

字段类型、建表、删除临时表、视图;

查询语句较多(笔试或者面试过程中需要手写)

推荐习题练习https://www.cnblogs.com/zhangkaimin/p/11052469.html

  1. 索引模块:

基本上是靠记忆:不需要当场写索引创建

索引的好坏直接影响数据库的性能;

  1. 事务模块:

事务时决定程序的稳定性、靠临场发挥,能说出来多少是多少

ACID属性知晓

  1. 锁模块:

也是靠现场表达的能力

锁按照不同的方式分为不同的类型的锁

比如按操作类型分为读锁、写锁

按照操作粒度分为行锁、表锁;

  1. 日志模块:

主要是做数据同步用的、一般问到这里就会顺带问主从复制

  1. 性能调优模块:

这个是亮点:也是能记住多少就说多少

需要说明在什么业务背景下,进行了哪些方面的调优,调优后性能提高了多少;然后就是说还了解过哪些方面的调优。。。

三、HQL知识点:

1. 查询模块:

推荐练习题:https://blog.csdn.net/qq_41568597/article/details/84309503

  1. 窗口函数模块:

主要是:row_number over(partition by … order by … )

       其他的进行了解

  1. UDF模块:

写过哪些UDF函数,实现的业务是什么

写UDF的步骤说说

4. 数仓模块

       数仓中的增、全量抽取数据,如何抽取

       拉链表怎么做的。

  1. 性能调优

是如何调优,都是怎么调的(调的参数、配置信息、存储、HQL);

能说出来多少就说多少;尽量往细说,需要质量!

 

四、SparkSQL

1. 调优模块:

主要是如何调优

总结:

 

  1. 最主要的还是需要多练习有效SQL(别天天select * from tb,需要找一些多表联查的SQL ,公司中用到的多表联查较多,特别是LEFT JOIN)

你可能感兴趣的:(SQL,Interview,MySQL面试,大数据工程师面试)