面试官:一次查询出十万条记录,你能怎么样做到最大优化。 我:加索引,看执行计划优化语句,加缓存读写分离。 面试官:还有呢?你这还是 sql 层面的,sql 优化最多能解决 40%的问题 我:搞个专门节点,专门处理大数据量查询和导出等操作。 面试官:你这还是相当于 sql,我们可能也 6 没有加服务器的条件。 我:那看业务需求,按查询条件分表嘛,每次只走固定区间,然后懒加载。 面试官:你业务经验不够,我告诉你,这种情况下我们完全没必要一次加载出来嘛,可以分页嘛,rowid 你知道不?这个是全局唯一的,这其实是最快的索引……
1
HuHui 2018-05-01 21:37:46 +08:00 via Android
面试遇到的几乎 60%都是这样的,淡定
|
2
hoholiday 2018-05-01 21:37:55 +08:00 via Android 18
恐怕这是个脑筋急转弯。。。
|
3
kevindu 2018-05-01 21:41:20 +08:00 8
说好的 一次查询出十万条记录 呢
|
4
cout2013mr OP @kevindu 他的意思应该是第一次查询已经查出来了,有数据库缓存,后面再查询就不会这么慢了。
|
5
ericls 2018-05-01 21:43:20 +08:00 via iPhone
这种公司不去也罢……
|
6
bolide2005 2018-05-01 21:49:52 +08:00
这面试官是杠杆成精了?
|
7
cout2013mr OP 面试官:写过前端组件吗
我:写过一些,但是主要都是继承一些插件的,没有自己写原生。 面试官:那你的组件怎么用的。 我:require,实例化对象,我在构造函数里写了初始化方法。 面试官:你这性能太差,每次都搞个对象,用户浏览器性能扛不住。那你怎么初始化默认参数和用户自定义参数的。 我:构造函数中做一个对比,用户是否有定义参数。 面试官:你这不行,jquery 有个什么什么方法是专门用来构造参数的,你这样性能太差。我来给你做个总结,经验太少了,项目做得也不大,你学习能力还不错,可能是你以前发展平台不好。 |
8
murmur 2018-05-01 21:54:41 +08:00
我:构造函数中做一个对比,用户是否有定义参数。
这个答的的却不好 装 b 点用 es6 的默认参数,jquery 就是直接把用户输入往默认值上 extend 但是这面试官装的 b 也有点大 |
9
kunluanbudang 2018-05-01 21:56:14 +08:00 via Android 1
分页
与 一次查出,不是矛盾的吗? 有些面试官压根儿不会提问,猜来猜去的,找到他们的 G 点很难,最后还要被他们 diss 比如楼主的问题,谁 tm 不知道要分页啊? |
10
cout2013mr OP @murmur 我们项目用户的机器都比较老,之前用的 es6 的写法很多被迫改回来了,我就实话实说了
|
11
ScotGu 2018-05-01 21:57:14 +08:00
这是哪一层面的面试官?
|
12
cout2013mr OP @ScotGu 不知道啊,就是一面的时候来了俩面试官,感觉我是中套路了
|
13
aliipay 2018-05-01 21:59:11 +08:00 2
一次查询出十万条记录,这个明显不合理了。我觉得楼主对业务性能敏感性确实不够
|
14
aliipay 2018-05-01 22:02:55 +08:00
@kunluanbudang 第一反应就是十万条记录一次查询出来非常不科学,而且面试官非常强调非 sql 层面的,那就发散思维考虑下别的,比如业务流程上优化下,也许就查询出十条记录就满足需求了
|
15
ScotGu 2018-05-01 22:03:48 +08:00
|
16
glacer 2018-05-01 22:04:11 +08:00 via iPhone
同楼上,一次返回十万条数据的 SQL 本身就没有上线的可能了。
|
17
cout2013mr OP 技术面完了之后,hr 面,问了一些跳槽原因,总结了三点:发展不适合,离家太远,平台不大。
HR:你最低接受多少? 我:目前是**×13,底线是 13×13,这个就是最低能接受的了,你们能给多少? HR:(闭目思考数秒)你工作经验不够,我们最多给你 8×16。 我:这不可能。 HR:你现在公司涨薪幅度大概是多少? 我:10%左右。 HR:你还是继续在**待着吧。 |
18
cout2013mr OP @aliipay 我当时以为是日志类的统计分析功能,先查询出十万条数据取 count 之类的,或者是十万条数据的导出。我个人做过的一次查询这么大数据量的,就是这两种情况,至于分页根本不算一次查出大数据量吧
|
19
cout2013mr OP 我感觉是被套路了,一直反复说业务经验不足,然后压低工资。他们应该是觉得自己平台不错,希望人降薪过去。我根据他们的说法推断,他们应该是有一套平台框架,开发功能比较简单,所以需要技术层面不深,一直跟我强调,需要很深层次的业务知识。所以招人的时候,比较拿腔作调,不在乎面试者怎么样
|
20
scofieldpeng 2018-05-01 22:20:36 +08:00
对方很大可能是,给不了高工资,但是又不愿意承认这个事实,只好显得自己很牛逼然后打击你,让你以为你是个辣鸡,能来这里是你的福分。
以上都是我的个人猜测,仅供参考。 |
21
janus77 2018-05-01 22:24:14 +08:00
往死里压的 hr 真的就没什么理由要去了,不管公司现在经营状况如何,氛围和环境可窥一斑。
|
22
orangeade 2018-05-01 22:27:56 +08:00 via Android
@cout2013mr 这是逗你玩呢,他招聘上写的多少?
|
23
cout2013mr OP @scofieldpeng 给别人的工资不知道,反正给我开的待遇很低。据他们自己描述是一家有四千多人的 A 股上市公司,可能他们觉得我没见过世面吧。还有一点就是,他们是二四六加班,也就是所谓的义务性单休
|
24
cout2013mr OP @orangeade 面议,我看其他同等岗位 jd 写的是 11 到 15w/年
|
25
cout2013mr OP @orangeade 主要是其他公司联系我之后,问了我现在的薪资,会在电话里告知我他们大概的一个期许值,或者直言说给不了。而这家公司在收到我的简历的时候,知道我现在待遇以及期望待遇,但是没有提前和我做任何沟通,我咨询他们工资待遇的时候,也没有给我明确答复,而是直接叫我定一个时间去面试,就这样耽误我一下午时间。我的时间难道一文不值?
|
26
orangeade 2018-05-01 22:40:22 +08:00 via Android
@cout2013mr 能爆名字么,以后找工作避开
|
27
scofieldpeng 2018-05-01 22:42:10 +08:00
@cout2013mr 某些大公司的 HR 就是这样,一脸严肃高高在上的样子,尤其是问到薪资这一块,我一般都喜欢说随便,相信你们也能给一个合理的,结果真的“很合理”,从此对这些公司毫无好感,尽管这些公司都看起来很不错。很多 HR 都忘记了,自己代表的是公司。不知道你面试的这家如何,反正薪资这块期望多少就直接说,反正 HR 也只会给你最低的,谈不拢就谈其他的,面试时一个双向的过程,和相亲一样,双方看上眼才行。祝早日找到满意的工作:-)
|
28
tianzx 2018-05-01 22:42:31 +08:00
被套路了
|
29
cout2013mr OP @orangeade JXU4RkRDJXU1MTQ5JXU4RjZGJXU0RUY2
|
30
cout2013mr OP @scofieldpeng 第一次面试这么糟糕,真的太不尊重人了。希望能找到中意的,哈哈
|
31
orangeade 2018-05-01 22:55:47 +08:00 via Android
@cout2013mr 这种传统软件公司挺坑的样子
|
32
af463419014 2018-05-01 23:00:14 +08:00
原以为是技术面,没想到是脑筋急转弯 :doge
|
33
wdlth 2018-05-01 23:00:25 +08:00
“一次性查出十万条数据”和“这种情况下我们完全没必要一次加载出来嘛”有何联系?
|
35
udtrokia 2018-05-01 23:03:58 +08:00 via iPhone
面试官:为什么要用 react-router,a 标签不够用吗?为什么加 module.exports ?为什么要加 #!/usr/bin/env node ?为什么要用命令行? ide 不够用吗?你这是在炫技...
|
36
cout2013mr OP @wdlth 他这样说出来的时候,我整个人是愣住的,然后还强行给我科普了一番 rowid,我觉得他的意思可能确实是想问我分页的问题。可能他觉得在业务层面上看,用户是看不出来翻页的时候数据来源是哪里,但是他的表述实在叫人难以捉摸。后来他还问了我一句,这十万条数据如果在前端分页,应该怎么处理?我更懵逼了,就想当然说了句,先分页存数据,然后点击下一页或页码就渲染对应数据,他居然点头说不错。。
|
37
WhoMercy 2018-05-01 23:24:58 +08:00 via Android 5
远光软件怎么样
远光软件面试 远光软件待遇 远光软件好不好 |
38
stevenhawking 2018-05-01 23:29:25 +08:00
我觉得面试官说的在理,因为我遇到这样的问题我肯定第一句话就是 10 万条必须查询出来吗?看出了楼主开发的经验不足
|
39
liprais 2018-05-01 23:35:30 +08:00
笑死我了,面试官连半桶水都算不上,改行讲相声比较合适
|
40
superzmy 2018-05-01 23:38:23 +08:00 2
作为架构师,基础组件的开发者,首先要让性能达到 10 万条瞬间加载;
接着再从应用的角度继续优化 |
41
cout2013mr OP @stevenhawking 他已经明确说了,一次查出十万条数据,这个跟实际开发不一样。我说的分区表加懒加载的做法是相当于业务分页,只是没有分页这么简单常见,而且我确实处理过一些大批量数据查询的业务需求,并没有觉得这个不合理或者不存在这种场景。再一个,我怎么会想到,他给我的是一个不清不楚的原始用户需求而不是技术问题?
|
42
cout2013mr OP @superzmy 万分同意,我之前包括现在都是做平台和基础组件开发的,首先想到的一般是怎样从根本上来解决 /优化这个问题,要有可靠通用的解决方案。可能思维确实也有点僵化了
|
43
letv 2018-05-01 23:50:48 +08:00
@cout2013mr 这好像不是 base64 编码啊
|
44
congeec 2018-05-02 00:05:15 +08:00 via iPhone
如果是我,会先问清楚对方的意图
|
45
xcssum 2018-05-02 00:07:31 +08:00 via iPhone
面试本来就是双向的,你作为应聘者的同时其实也是在考核代表着你将来同事或者领导的那个面试官
|
46
pmispig 2018-05-02 00:31:47 +08:00
这样傻逼的面试官现在很多的。他提出一个比较开放的问题的时候,他心里已经预设了一个答案,你没点中他的 G 点就是不行。我上次就遇到了一个,碰到这种也没办法,只能忍了。
一次查十万,万一是遇到要做报表呢,这种查 10 万条完全正常啊,感觉楼主说的一点问题都没有。 |
47
zyqf 2018-05-02 00:42:56 +08:00 via Android
sz002063
|
48
whatisnew 2018-05-02 00:45:06 +08:00 1
我遇到过问我如何保证内存里的数据永不丢失,包括断电的时候。
我的回答是数据持久化+硬件上的支持。 答:不对 问:那有什么好方法推荐吗 答:我就不跟你多说了,你回去了解一下。 我一脸懵 b 的走了 |
49
Lullaby 2018-05-02 00:54:37 +08:00
rowid 就不是 sql 层面的?
|
50
vegito2002 2018-05-02 05:27:20 +08:00
这个题目看完我整个人真的是目瞪口呆了五秒
|
51
FourAndHalf 2018-05-02 06:46:31 +08:00 1
base64 + unicode 转换
|
52
cout2013mr OP @letv 是 base64 啊,47 楼发了股票代码了
|
53
hareandlion 2018-05-02 07:32:14 +08:00 via Android
这面试官是在封闭的技术环境里待的时间长了吧
|
54
JohnDHH 2018-05-02 08:26:42 +08:00
37 楼,你这样直接过分了。。。。。。
|
55
k9982874 2018-05-02 08:47:18 +08:00 via iPhone
可能主管离职,让个稍微有点经验的顶着面试
|
56
smilenceX 2018-05-02 08:55:34 +08:00
看到这个问题,我的思路是这样的:
真的有必要一次加载这么多吗? 好吧,也许他们真的有这样的需求 那么我应该 blabla |
57
gamexg 2018-05-02 08:56:39 +08:00 via Android
最近也正在解决查询出 10w 结果的需求
执行计划显示已经优化到极致了,但是还是对速度不满意。 读写分离之类的堆机器到是好做,但是 sql 本身慢,加机器效率太低。 业务问题缓存基本没用。 试过数据存 redis 直接由 redis 计算,但是发现还不如 sql 快.... 最终直接手写了个程序, |
58
gamexg 2018-05-02 09:00:52 +08:00 via Android
|
59
cout2013mr OP @gamexg 直接在 redis 里查询计算肯定是慢死的,有考虑分区分片吗?或者弄个定时任务去做统计梳理和缓存,如果要 10w 条实时数据,那就真的很难搞了
|
60
cout2013mr OP @gamexg 哈哈,我面试时说这个方案直接被 diss 了
|
61
RainFinder 2018-05-02 09:15:00 +08:00
没看懂呢,谁来解释解释槽点在哪
|
62
bigpigeon 2018-05-02 09:20:55 +08:00
知道为何猪撞死在树上吗?因为猪不会脑筋急转弯
|
63
watzds 2018-05-02 09:25:47 +08:00 via Android
他说的分页查,可能是分页查出所有 10w 条吧,这种查询条件应该简单,搞不好是 getall,加索引不满足他的要求。
沟通不足 |
64
bigpigeon 2018-05-02 09:28:25 +08:00
@cout2013mr JXU4RkRDJXU1MTQ5JXU4RjZGJXU0RUY2 是什么加密方式
|
65
bigpigeon 2018-05-02 09:30:41 +08:00
@cout2013mr 是 base64,没看清
|
66
py2ex 2018-05-02 09:30:42 +08:00
@cout2013mr #25 遇到这样的一开始就不要去面试,没诚意
|
67
leeg810312 2018-05-02 09:32:11 +08:00 via Android
一次查询 10 万条,是不是只能用内存数据库了?以磁盘 IO,性能应该到不了吧
|
68
pdog18 2018-05-02 09:40:40 +08:00
@FourAndHalf
我把这个先用 base64 解码,然后用 unicode 转中文怎么不行啊?可以帮我看看我哪里弄的不对吗 ``` JXU4RkRDJXU1MTQ5JXU4RjZGJXU0RUY2 #解码 %u8FDC%u5149%u8F6F%u4EF6 #unicode 转中文 %u8FDC%u5149%u8F6F%u4EF6 ``` |
69
cout2013mr OP @pdog18
把"%"替换为"\" |
70
KgM4gLtF0shViDH3 2018-05-02 09:45:42 +08:00
感觉 lz 的前后端水平都不低,13*13 有点少了
|
71
emanci 2018-05-02 09:50:45 +08:00
是我的话,我就对面试官说:我就问你一句话,你尴不尴尬啊。然后仰天大笑,哈哈哈哈哈哈,潇洒离去。
|
72
zFxiang 2018-05-02 10:07:06 +08:00
养老院不去也罢哈哈
|
73
ty89 2018-05-02 10:18:47 +08:00
这还不爆公司名字打算留着过年呢?
|
74
openbsd 2018-05-02 10:30:09 +08:00
你应该弱弱的问一句:你们公司没有 DBA 吗 ?
|
75
wekw 2018-05-02 11:22:12 +08:00
一次查询出十万条也不是不可能,上 NVME SSD 加 1TB 内存再加 40G 网卡
|
76
yyy 2018-05-02 11:49:23 +08:00
某直播厂,
面试官面带嘲讽问:最后一个问题,知道 w3c 官网地址吗? 面试者内心:甘霖娘问这问题几个意思? |
77
horizon 2018-05-02 11:53:47 +08:00
@cout2013mr ES6 不都用 babel 转么。。有啥问题。
|
78
WoeiTsai 2018-05-02 11:59:38 +08:00 via Android
@cout2013mr 就想凸显自己和自己的公司牛逼呗
|
80
farseeraliens 2018-05-02 12:04:37 +08:00 via iPhone
@whatisnew 估计是想考察 replication,整套机制都讲一遍确实太费时间了,也不在他职责范围内。
|
82
alexnevsky 2018-05-02 12:28:10 +08:00
被套路了,给不起工资,就说能力弱。996 才 13k 逗我们呢?当时就怼她
|
83
Linxing 2018-05-02 12:35:20 +08:00 via iPhone
甩门走啊
|
84
bookit 2018-05-02 12:45:00 +08:00
诸位,
这股票的走势明显是底部放量, 有人反复折腾建仓,低位筹码密集, 中期目标价位 19 块。。。 |
86
huhujin 2018-05-02 13:53:59 +08:00
远光软件
|
87
zcjfesky 2018-05-02 14:01:24 +08:00 via Android
这个问题标准回答应该首先是确认需求,反问一句“您确定这十万条是要一次性查询出来吗?不存在分步或者分页的可能性?”之类的,显示一下自己“以客户真实需求出发”的“专业性”,然后再往下答题。楼主可能需要稍微看看面试的套路攻略什么的
当然以上都是马后炮键盘侠了,祝顺利 |
88
greatghoul 2018-05-02 14:08:05 +08:00
这面试官可以说很二了。
|
89
ourzhang 2018-05-02 14:15:38 +08:00
我给你说个例子吧,什么奇葩都有。
面试官挑出各种不足,这种情况应该没有后续了,但是还是让 hr 继续谈,之后压你期望薪资。问题是在职人员不可能降低薪酬跳吧? 但是人家就是这么做了。 之后听说过这家公司的 hr 压低薪酬后是有报酬的,而且报酬很丰厚的。 明明不可能的事情人家也做了。期望不可预期的因素招聘成功。这么奇葩的事情就发生在我身边。。。 |
90
cout2013mr OP @alexnevsky 我要的 13,给我开的 8,真的是气炸了= =
|
91
cout2013mr OP @bestkayle 哈哈,我这种渣渣,人家只愿给我开个 8k
|
92
zhouxuchen 2018-05-02 14:26:10 +08:00
@cout2013mr #7 [经验太少了,项目做得也不大,你学习能力还不错] 说白了就是想招个廉价劳动力,想尽办法忽悠来面试的。
|
93
kangkang 2018-05-02 15:17:38 +08:00
远光软件怎么样
远光软件面试 远光软件待遇 远光软件好不好 |
94
recordnow 2018-05-02 16:25:24 +08:00
如果是考察你理解需求分析问题,那最后没必要提分页和 rowid,只要告诉你应该质疑下什么情况需要一次性查 10 万条数再决定是不是要实现和优化。列表展示分页 rowid 这不是最常规的做法吗,无论是十万级还是百万级的数据量,还个还需要讨论?
除开加索引,加分表分区加缓存读写分离,你已经吓到面试官了,估计人家已经满意你的水平了,只是他们的部门预算不够开不起价,打压下你,看能不能捡到便宜货。你不适合他们公司。明知道给不了你要的价钱,还要忽悠你来面试捡漏。 |
95
sgissb1 2018-05-02 16:31:51 +08:00
很自以为是的人很多。我以前遇到过一个领导,编译出问题就赖人。比如他本地代码编译不过,大家都是好的,就非要赖别人。
本本主义的人很多,面试时和工作时都有遇到。 |
96
wadahana 2018-05-02 18:02:36 +08:00
某云,约 5 点电话面,等到 9 点,期间 6 点,7 点都电话过去问!
|
97
garipan 2018-05-02 18:07:54 +08:00
业务侧的人会从自己的实际业务经验出发
|
99
taresky 2018-05-02 19:03:00 +08:00 via iPhone
远光软件怎么样
远光软件面试 远光软件待遇 远光软件好不好 说实话技术面搞笑都没啥,HR 的行为纯属业余,浪费大家时间。 |
100
MrFireAwayH 2018-05-02 19:17:12 +08:00
@bookit #84 哥们 就属你角度最刁钻
|