太极计算机股份有限公司面试经历

一面:一个带眼睛的胖小哥,很友好,问了一些技术问题,基本上都回答上来了(Spring、Redis、Mysql、JVM等),有一些具体的知识点有点模糊,整体上来说还算可以,于是有了二面。

二面:面试官也很好,,自己没有发挥好。哎。

题目:有1亿条数据在csv文件中,如何导入Mysql数据库。面试官:我先说两个,一个是用navicat工具导入,一个是写一个程序一条一条读取并插入。

听到问题的我一脸懵逼,这不都让你给说了吗?第一时间想到了Mysql的Csv引擎,我迫不及待的说了出来。面试官问还有其他的么?我想面试官这么问一定还有其他的我没有想出来。然后。。然后就没有然后了,我完全想不出来其他方案了。还能有啥?我脑子一篇空白,慌得一批。咋整?我还故作镇定的思索,其实我连个屁都想不出来。面试友善的提醒说运用多线程可以吗?我说这也算一种方式?好吧,我完全没有GET到面试官的意思。原来面试官考察的不是怎么把数据导入,是如何优化导入。懵逼的我说这也算的话那批量插入操作是不是也算?面试官说也算,那还有其他方式吗?我又进入了懵逼状态。文件分割批量读取,批量插入?面试官问怎么分割?由于我是懵逼状态了,我脑子一抽风竟然回答说用RandomAccessFile去读,然后我把自己给埋进了自己的坑。我竟然没有想到回答,按行号划分去读取。

题目:有1亿条身份证号数据在Mysql数据库里面,有一个8G,2核CPU的机器上。怎么找到重复的身份证号。

这个我是真知答案的,用布隆、布隆、布隆过滤器。虽然我没有真正用过但是看这个东西都不下10遍了原理啥的都知道,但是我没有回答上来。我来说说我的懵逼思路。

我把整体思路放到了Msql上,我根本就没有往程序方面想。建索引?没啥用啊;分区、分表?也不太合适啊。我整个脑子都在想Mysql算hash用Crc32函数,但是怎么使用呢?陷入了更佳懵逼的状态。我根本没有GET到面试官的考察点。

题目:小王做的数据导入功能出现了内存溢出,怎么分析问题?

Review Code、本地调试、用jmap dump出内存快照。然后用IBMHeapAnalyzer或其他工具对文件进行分析查看对象分布情况。

我竟然傻叉的说用jstack dump导出线程快照。查看线程状态。。。

好吧,面试到这里也就完蛋了。欲哭无泪~~~

凉了~~~

猜你喜欢

转载自blog.csdn.net/pangfeipangfei/article/details/106127561