这是一个开放式的面试问题。我无法得到满意的答案。 问题是:
如果您尝试修复涉及功能的速度错误,该功能需要90秒才能执行,而客户希望该功能的使用时间少于10秒,您将如何解决问题并解决问题?假设该功能有10个查询,30个计算,以及分布在5个模块上的3000行代码
答案 0 :(得分:3)
我认为答案的第一部分是你将在任何代码语言中使用分析器来首先验证瓶颈是在SQL查询中而不是在某些处理中。通过告诉您每种方法花费的时间,探查器还可以告诉您哪些查询花费的时间最多。一旦你得到了,你就可以使用数据库查询优化器来解决问题。
答案 1 :(得分:1)
太开放了,但你可以尝试一些事情:
确保您正确理解客户的要求
确保您了解当前设置中的性能瓶颈
确保您所拥有的查询存在正确的索引 心
优化数据库架构,在必要时对其进行反规范化以避免连接
在适用的情况下探索缓存和预计算结果,这样您就不必首先查询数据库了。
如果探索所有技术途径或时间和精力过多,请在必要时与客户重新设定期望。
答案 2 :(得分:1)