一次用户体验极差的面试

2018-05-01 21:26:59 +08:00
 cout2013mr

面试官:一次查询出十万条记录,你能怎么样做到最大优化。 我:加索引,看执行计划优化语句,加缓存读写分离。 面试官:还有呢?你这还是 sql 层面的,sql 优化最多能解决 40%的问题 我:搞个专门节点,专门处理大数据量查询和导出等操作。 面试官:你这还是相当于 sql,我们可能也 6 没有加服务器的条件。 我:那看业务需求,按查询条件分表嘛,每次只走固定区间,然后懒加载。 面试官:你业务经验不够,我告诉你,这种情况下我们完全没必要一次加载出来嘛,可以分页嘛,rowid 你知道不?这个是全局唯一的,这其实是最快的索引……

14844 次点击
所在节点    程序员
105 条回复
cout2013mr
2018-05-01 23:40:26 +08:00
@stevenhawking 他已经明确说了,一次查出十万条数据,这个跟实际开发不一样。我说的分区表加懒加载的做法是相当于业务分页,只是没有分页这么简单常见,而且我确实处理过一些大批量数据查询的业务需求,并没有觉得这个不合理或者不存在这种场景。再一个,我怎么会想到,他给我的是一个不清不楚的原始用户需求而不是技术问题?
cout2013mr
2018-05-01 23:49:43 +08:00
@superzmy 万分同意,我之前包括现在都是做平台和基础组件开发的,首先想到的一般是怎样从根本上来解决 /优化这个问题,要有可靠通用的解决方案。可能思维确实也有点僵化了
letv
2018-05-01 23:50:48 +08:00
@cout2013mr 这好像不是 base64 编码啊
congeec
2018-05-02 00:05:15 +08:00
如果是我,会先问清楚对方的意图
xcssum
2018-05-02 00:07:31 +08:00
面试本来就是双向的,你作为应聘者的同时其实也是在考核代表着你将来同事或者领导的那个面试官
pmispig
2018-05-02 00:31:47 +08:00
这样傻逼的面试官现在很多的。他提出一个比较开放的问题的时候,他心里已经预设了一个答案,你没点中他的 G 点就是不行。我上次就遇到了一个,碰到这种也没办法,只能忍了。
一次查十万,万一是遇到要做报表呢,这种查 10 万条完全正常啊,感觉楼主说的一点问题都没有。
zyqf
2018-05-02 00:42:56 +08:00
sz002063
whatisnew
2018-05-02 00:45:06 +08:00
我遇到过问我如何保证内存里的数据永不丢失,包括断电的时候。
我的回答是数据持久化+硬件上的支持。

答:不对

问:那有什么好方法推荐吗

答:我就不跟你多说了,你回去了解一下。

我一脸懵 b 的走了
Lullaby
2018-05-02 00:54:37 +08:00
rowid 就不是 sql 层面的?
vegito2002
2018-05-02 05:27:20 +08:00
这个题目看完我整个人真的是目瞪口呆了五秒
FourAndHalf
2018-05-02 06:46:31 +08:00
base64 + unicode 转换
cout2013mr
2018-05-02 07:04:42 +08:00
@letv 是 base64 啊,47 楼发了股票代码了
hareandlion
2018-05-02 07:32:14 +08:00
这面试官是在封闭的技术环境里待的时间长了吧
JohnDHH
2018-05-02 08:26:42 +08:00
37 楼,你这样直接过分了。。。。。。
k9982874
2018-05-02 08:47:18 +08:00
可能主管离职,让个稍微有点经验的顶着面试
smilenceX
2018-05-02 08:55:34 +08:00
看到这个问题,我的思路是这样的:
真的有必要一次加载这么多吗?
好吧,也许他们真的有这样的需求
那么我应该 blabla
gamexg
2018-05-02 08:56:39 +08:00
最近也正在解决查询出 10w 结果的需求
执行计划显示已经优化到极致了,但是还是对速度不满意。
读写分离之类的堆机器到是好做,但是 sql 本身慢,加机器效率太低。
业务问题缓存基本没用。
试过数据存 redis 直接由 redis 计算,但是发现还不如 sql 快....
最终直接手写了个程序,
gamexg
2018-05-02 09:00:52 +08:00
@gamexg 额,点错发了。

最终手写了个程序,专门处理这个查询,数据预先载入内存的情况下单核性能快 sql10 倍,多核就更好了。
cout2013mr
2018-05-02 09:08:17 +08:00
@gamexg 直接在 redis 里查询计算肯定是慢死的,有考虑分区分片吗?或者弄个定时任务去做统计梳理和缓存,如果要 10w 条实时数据,那就真的很难搞了
cout2013mr
2018-05-02 09:13:20 +08:00
@gamexg 哈哈,我面试时说这个方案直接被 diss 了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/451279

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX