前言:

又到了金三银四的季节,于是准备去外面看看环境,看看自己还值不值钱了,于是投了几份简历,本次文章介绍一下为政府部门做大数据平台的公司。

整个经历分为以下几个部分:

第一、笔试题目:

这个环节的题目有:Vue的一些题目、数据库的题目、算法题目、spring源码以及基本概念的题目、Mybatis的题目、redis的题目;答题限制在一个小时内。

  • vue的题目:属性的赋值操作有哪些、css的样式的几种优先级、页面的布局、重绘与重排的概念与区别、vue的触发事件等,要求写源码。

  • 数据库的题目:一个查询语句,关于删除重复值,只保留最新的一条、报表的汇总处理(要求根据电话号码去重,并且汇总电话的次数、总时长等),数据库的聚簇索引与非聚簇索引的区别、SQL的优化几种方式等,要求写sql出来的。

  • 算法的题目:递归的概念逻辑、冒泡排序源码、递归查询的源码;

  • spring的题目:springapplication的操作内部原理是什么?、IOC的概念、常用的注解有那些,以及作用、装配的原理等;

  • Mybatis的题目:mybatis的关于分页的使用方式有那些?、mybatis的几种字段替换符的写法以及使用(#{}、¥{}等)、mybatis的优缺点等;

  • redis的题目:redis的两种备份的方式、redis的类型以及优势、redis与memcache的区别;

第二个环节面试:

由于这个公司是做大数据平台的,面试我的那个Hr就问一些关于数据库优化的处理,比如说sql语句如何写两个时间差,用到的是什么函数(当时我也没有回答出来,后来想了下是Datediff就可以了)。

还有就是两个千万级别的数据库,如何快速的进行关联查询,比如说老年人去世了,一个是老年人的基础信息表、另外一张表是人员去世表;如何进行关联查询,让效率更高的处理;这个问题,我当时就说直接查询两个表进行关联的话,如果没有外键,关联查询比较慢。最好是使用一个中间表来做关联,比如说可以建一个人员等级表,或者说直接在老年人的基础表上面扩展一个字段来解决处理;当时还问了一下公司的处理方式,Hr解释说,根据人员信息表与人员去世表分别查询,然后在内存中做的处理(省去了扩展字段的处理,处理简单些,使用的数据库是ES)。

关于分库分表的实现原理,这个我当时说的是,比如说人员基础信息表的话,可以根据城市来进行分库分表来处理。全国有32个城市,直接在不同城市的直接去对应的库里面查询就行了。据说使用的开源框架来处理,具体的逻辑需要进行配置处理的。

问了一些关于出差的问题,由于政府企业都是使用的自己的服务器,所以说都是内网,要出差才能解决一些实际的问题。关系型数据库使用的国产的一个叫啥的,忘记了。平时不会加班,只有项目紧急的时候才会加班。

最后:

关于这次面试经历,发现有些正规的企业还是需要写一些代码的,或者需要面试之前先准备一些。刷一些题目用来应付面试,否则的话,短时间想要解答出来根据不切实际。还有就是一些问题都是实际的经验问题。就是要看看是不是有相关的经验,本次面试感觉不太好,这次做一次整理。下次再面,金三银四,感觉还是要试一下机会的。跳槽成功就多了5个W,哈哈哈