php - 怎么分析sql查询速度等问题,被面试官问成懵逼了
PHP中文网
PHP中文网 2017-04-10 18:10:55
[PHP讨论组]

1.支付宝支付回调地址如果延迟,怎么处理
2.怎么分析sql查询速度
3.你是如何用php做app接口的,答:返回json. 他说 这太不专业了...

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(13)
天蓬老师

这几个问题回答起来没什么意思,我主要分析分析面试官为什么问你这几个问题。

问题 1 主要应该是想了解你对调用其他程序或接口时出现的异常情况是如何处理的,毕竟程序的运行并不总是一帆风顺,如果由于其他的接口出现了问题,而你没有处理好这些问题继而引发你写的程序出错或崩溃,那确实不是一个优秀的程序员所做的。程序员不仅应该了解用户按常理出牌,按既定路线完成程序的情况,还应该做好发生各种异常情况的处理。

问题 2 主要应该是想了解你是怎样评估你写的程序的,是通过怎样的手段了解的程序的运行情况,是如何优化你的程序的。实现功能并不是程序员的唯一目标,在实现功能的情况下做一个优秀的、高效的程序也是一项艰巨的工程。

问题 3 主要应该是想了解你对程序体系结构,或者说是架构的理解,程序不是简单的代码堆积,是有思想线路支撑,有模块协作分工的。作为程序员,虽然可能不会去实际写某一块的东西,但是至少应该了解这些模块的功能以及所有模块之间的联系和他们是如何协作工作的。就好比实现一个接口,你需要处理输入,进行逻辑判断,数据库操作,遇到错误的响应,返回结果等等,这里每一块都是相当细致的。

黄舟

路过了,简单说一下自己脑海中最直接的想法。一家之言,欢迎拍砖。

第一个问题:

感觉面试官应该是考察题主对与程序中异常和错误的解决方案,我觉得以前三点为必填:

1.记录日志;
2.将失败支付放入失败队列或数据库管理;
3.重现问题,找到原因并想办法规避;

第二个问题:

之前面试的时候同样遇到过,不知道这个理想的答案是什么?路过的大神求帮忙说一下;

我之前提的问题

第三个问题:

APP接口,各种接口什么的,我估计题主没说到重要的一点:RESTful

我估计会这样说:

1.整个系统采用 RESTful架构模式
2.部分涉及到权限的业务采用类似 微信Access_Token 机制;
3.接口调用次数限制等管理,日志相关记录;
BalaBala ....

好吧,答完之后才发现楼上的哥们已经提到了 RESTful 。-_-

迷茫

1.支付宝支付回调地址如果延迟,怎么处理
2.怎么分析sql查询速度
3.你是如何用php做app接口的,答:返回json. 他说 这太不专业了...

面试的场合,其实氛围很重要。面试官在面试的时候,不光面试你的技术能力,而且还要面试你的沟通能力,是否可以跟当前的团队配合,协同工作等等,所以你这么简单的几句回答,很容易造成尴尬的气氛,面试气氛感觉不好,你就可能估计没戏了,好的面试,应该有个好的气氛,让问题能一个顺承着一个的接下去,回答不回答出来是一回事,表达能力,分析对方的意思也很重要的。

1.比如有这样一个场景:假如一个订单在17:30之前未完成付款则超时关闭,用户在17:29在支付宝完成了支付,但是在17:31才将支付结果回调给我们,此时单子已被超时关闭了,但是用户也确实是在规定的时间内完成的支付,没有超时,这个问题怎么解决呢?

  • 设置支付订单的时间与支付宝交易单号的自动关闭时间一致; 支付宝有主动查询交易状态接口; 支付宝可通过接口主动关闭订单;回调时检查订单状态,若订单已关闭则直接向支付宝发起退款请求,交易结束。

2.sql优化对于一个工程师来说,很重要的。你可以将这个问题,说说你对于SQL优化的措施,以及怎么排查sQL的慢查询问题。

  • 内存够不够;网络速度怎么样;有没有受到I/O吞吐量影响;索引加了没有;数据量过大,有没有采用分页查询;有没有锁行,sql线程等待的情况;查询语句是否有优化。

  • 另外,还可以说说mysql的慢查询日志分析工具。mysqldumpslow官方提供的慢查询日志。还有其他的一些工具

3.接口涉及到前后端的交互,最好能根据公司使用的框架,说一下从app端的一次点击到后台的业务逻辑处理,sql的查询,再返回结果到前端的整个过程。

伊谢尔伦

记得当时毕业的时候给我们讲面试相关知识的老师说,回答面试官的问题尽量详细,不要太简洁,面试官既然面试你是想听你说,不是要你听你回答yes or no。所以,如果可以的话,尽量认真详细的回答。app接口返回Json这种回答方式,会让对方觉得你回答问题不认真,也没有重视这个问题。

黄舟

app接口返回json有错吗???
我是学生党,想了解

怪我咯

问答是为了考察你解决问题的思路而不是要最重答案,所以要说的详细点 api接口虽然最终返回是json,但面试官更想知道处理接口的整个流程,涉及到很多点。加密 认证 错误处理 缓存等

PHP中文网

一:我也不太清楚延迟怎么办,懂得人可以顺便回答一下我谢谢你。
二:explain,profiling然后可以顺带讲述优化的关键点,例如缓存,服务器配置。
三:关键词应该在restful,json,加密,安全,错误处理,可以的话加上文档。
简单阐述一下这几样的开发流程就好。

天蓬老师

json接口不专业?
restful不是Json吗?
我觉得东西设计 没有专业 不专业 只有设计的合理不合理 适合不适合当前的业务~

大家讲道理

1、异步回掉延迟,一般使用主动轮询查询,获取返回结果
2、explain 查看type类型和ref等级
3、接口架构啊,看看restful api

巴扎黑

1、异步延迟还是会经常出现的,这个时候可以采取主动查询的方案。由系统定时或者用户触发查询支付状态接口。当然这个接口要谈。
2、explain
3、这个你回答的也太简单了,json只是说交互的数据格式。协议、安全、性能,每个点都能扯上几句起码代表还算比较了解的。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号