小技巧:显示数据库查询耗时,改善开发者习惯
作者:网络转载 发布时间:[ 2015/1/6 11:29:39 ] 推荐标签:数据库 软件开发
我会分享一系列在我开发生涯中积累的有用且容易实现的小技巧,本文是此系列的第一篇。
很多原因都可能导致网站运行缓慢,但这其中常见的是在数据库查询耗时太多。目前,数据库查询可能在网页渲染过程中起着很重要的作用(网页上的内容总得从某处获取),但是有时候 一些不必要的亦或没有优化好的查询会影响网页渲染的速度。
例如:
· 查询的数据根本没有被使用
· 查询时未使用索引
· 单次查询可以实现的功能却做了多次查询
· 慢且复杂的查询
然而有一个简单的机制可以间接的预防并且修复此类问题:
用‘诊断框’在每一个网页显示数据库查询的次数以及消耗的总时间。
下面这个示例是我自己的一个网站(截图 或者 这个页面)底部的一个样例诊断块:
Request Details:
DB – Queries: 4, Time: 5.66 ms
我在所有开发项目以及生产环境(用我的账号登陆)中都加了类似的诊断框。对于一个大型网站来说,你很可能想当你从办公室或者VPN访问网站时启用诊断框。如果你愿意的话,诊断框中还可以增加一些更具体的信息(即将运行的查询语句以及其它过程花费的时间等等)。
好处
我可以及时的看到是否数据库导致了网页加载缓慢。 在生产环境做调试时这一点尤为有效,因为有些数据库查询在生产环境和开发环境中的表现截然不同。
当增加新功能的时候,我可以直观的感受到新增的数据查询是否轻量级的。这能帮助我在这个新功能带来的好处和它在访问数据时所消耗的时间这两者之间做一个 权衡。另外它还可以提醒我有些查询语句需要手动优化或者做一些缓冲。
当我参加的项目中使用了ORM框架时,它能告诉我ORM产生的查询语句是否正是我所期望的。
当删除一个功能或者做了一些数据缓冲,我可以通过它来确认查询数量是否如愿有所下降。
尾声
当然,这些点子不是我发明的,而且有些诊断模式几乎是每个大型网站的常见功能。如果你还没有用到它们,我强烈建议你花点时间去实现它们。有这样的一个‘诊断盒’不会使你的网站本身变快,但它能在开发人员之间激发一些更好的习惯,并且长期来看,它可能对你的网站的速度有巨大的影响!
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11