怎么分析sql查询速度等问题,被面试官问成懵逼了

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

阅读 11k
12 个回答

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

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

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

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

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的查询,再返回结果到前端的整个过程。

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

第一个问题:

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

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

第二个问题:

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

我之前提的问题

第三个问题:

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

我估计会这样说:

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

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

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

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

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

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

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


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

这个延迟太难处理了,主动查询,几乎没法判断对方是否支付了

新手上路,请多包涵

问题一处理方法是,异步回调、同步回调同时使用。然后主动查询自己数据库里的状态。

新手上路,请多包涵

问的问题都比较简单嘛,还没往深入问,应该是问题顺序是一个比一个简单,到问题三基本的想法是跟着面试者的思维走了。

推荐问题
宣传栏