没有大项目经验被问高并发、大流量、百万级查询优化时改如何回答?

2016-07-07 12:17:49 +08:00
 Jakesoft

虽然已经找到工作了,但是这段时间面试了三个公司,几乎都会问这种问题,请问这问题是自己靠平时的意识积累还是说得查看相关论文、书籍呢?

在武汉有次面试也够奇葩的,面试官给模拟一个业务场景(口述的),让我怎么处理这种业务,我当时也不知道他们想问什么,业务难道不是跟运营一起讨论的结果么?并且这次面试有种被鄙视的感觉。我只是想写个 php 而已啊

13347 次点击
所在节点    程序员
32 条回复
codemew
2016-07-07 12:21:57 +08:00
没有相关经验就实话实说呗,平时自己不论是项目经验还是自主学习,积累肯定是要有的
julyclyde
2016-07-07 12:22:04 +08:00
百万级根本不需要优化啊
shuimugan
2016-07-07 12:37:20 +08:00
自己造数据,自己写自动化测试脚本去模拟
KingHL
2016-07-07 12:46:01 +08:00
我也遇到过相同的困惑,个人认为没有实际的项目经验做支撑,入职一年左右的新人很难对这种问题作出合适的解答,我现在一般都是除了在开发中总结相关经验外,就是去看下这些大的项目中会用到的成熟的开源库,无论是网络 /事件分发,还是缓存的,去搞懂这些库要解决什么样的问题,解决问题的原理和方法是什么,再往深了就读下源码了。
missdeer
2016-07-07 12:55:15 +08:00
是不是该说这种公司不去也罢,至少这面试官缺少足够的判断力,连被面试对象应该具有哪些基本素质的常识都没有,这公司也不会好到哪去。
sorra
2016-07-07 13:00:18 +08:00
年年都有人需要学习,那就学习吧! http://www.qingjingjie.com
lecher
2016-07-07 13:01:21 +08:00
涉及优化会有调优的要求。
PHP 就是 C 语言系的技术栈。

基础上自己用的语言框架性能瓶颈可能在哪里。
引用的环境中各个软件的性能和使用场景。
思路上多看看别人分享的架构,看看别人会用什么高性能的软件增加系统的性能、容灾性。

比如查询优化,穷尽心思在 SQL 语句上面调优可能没有加个 Redis 上多级缓存来得简单粗暴。
复杂查询上面也许只要一个 sphinx 、 elasticsearch 就可以解决复杂多变的查询需求。

至于业务上使用工具还是自己堆代码,就看经验了。
AirSc
2016-07-07 13:26:19 +08:00
@missdeer 不是每个人都有你这么强的能力,想在哪里找工作就去哪里找。而且楼主也说了,“但是这段时间面试了三个公司,几乎都会问这种问题”是一种普遍现象。况且“缺少足够的判断力”也不可能说面试要站在求职者的角度,肯定要在公司利益方面。
linoder
2016-07-07 13:26:23 +08:00
@lecher 确实如此 +1

不过 至于业务上使用工具还是自己堆代码,就看上头怎么要求和自己怎么争取资源了。
yuku
2016-07-07 13:31:46 +08:00
上次面试腾讯也是问了两三个这种问题,平时没啥积累真不好回答。
sfree2005
2016-07-07 13:34:36 +08:00
这个问题可以说是很大的。 查询优化是否规定必须在 mysql 之类的数据库里的查询优化呢?如果不是,范围就广了。可以和面试官聊一天, 如果你想的话。
从最底层的服务器架构说起,各种云服务器的选择和配置
数据库的选择( Sql , NoSql or both ), 配置( cluster ? 是否 shard 或者 replica ),以及和他们相配合的数据结构和查询语句的优化,
一直可以说到前端库的选择。
甚至可以把数据丢给前端,直接在前端搜索

上面的每一步都可以对查询的速度有影响。有空的时候可以看看对于哪些问题,会有哪些对应的技术解决,有些相应的了解也是不错的。
hbprotoss
2016-07-07 13:45:08 +08:00
估计是面试套方案的套路
wander2008
2016-07-07 14:05:20 +08:00
楼上说的蛮对,不少公司都在搞这种面试人给出可用的方案。一般来讲我就会给出个大概,然后细节,我来了你就知道了。
twtiyb
2016-07-07 14:23:26 +08:00
不问这些,你跟刚毕业的有什么区别.
jayki
2016-07-07 14:35:28 +08:00
@lecher 说的+1
harry890829
2016-07-07 14:40:36 +08:00
怎么说呢,其实给一个应聘者非常复杂的问题,是能够看到应聘者知识的储备,思考方式,思维活跃度等问题,可以判断出,应聘者是那种死写代码的人,还是有想法的人,公司会按照需要来选择
solaya
2016-07-07 14:46:43 +08:00
去年毕业,前几个月换工作基本都问这些,然而进去之后,并发量用手数。
3dwelcome
2016-07-07 14:51:25 +08:00
哈哈、顶楼上的并发量用手数。脱离实际的伪需求都是耍流氓。

Mysql 默认最大连接数并发就 152 、也没见有人吐槽。
fakefish
2016-07-07 15:05:11 +08:00
我觉得这类问题离不开缓存,加 redis ,静态化,高并发用 node , openresty 之类去解决一部分,站在前端角度看。
winglight2016
2016-07-07 15:14:32 +08:00
如果是招聘中高级程序员,我也喜欢问这种开放性问题——很容易看出面试人平时的积累和技术深度

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

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

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

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

© 2021 V2EX