从开发人员到审阅者:初级开发人员审阅数据库查询的清单

PHPz
发布: 2024-09-10 06:00:03
原创
1018 人浏览过

作为开发人员,提供高质量的代码至关重要,这些代码不仅要实用,还要针对性能进行优化。在开发人员领域的三年里,我从一名实践开发人员转变为审阅者角色。我在评审过程中关注的关键领域之一是数据库查询优化。

为什么要关注数据库查询?
数据库查询可以显着影响应用程序的性能。编写得好的查询可以有效地获取数据,而编写得不好的查询可能会导致数据库命中过多,从而降低整个系统的速度。作为初级开发人员,您可能想知道如何在代码审查期间评估这些查询的性能。这是我的首选清单。

检查数据库查询的清单

  1. 数据库点击次数:

    • 第一步是确定一段代码命中了多少数据库。对数据库的每次命中都会增加延迟,因此较少的命中通常意味着更好的性能。
    • 专业提示:使用Django的connection.queries和reset_queries来跟踪执行的查询数量以及每个查询所花费的时间。例如: From Developer to Reviewer: A Junior Developer
  2. 减少点击次数:

    • 一旦知道点击次数,下一步就是看看是否可以减少点击次数。减少数据库命中通常可以通过优化查询或将多个查询合并为一个来实现。
    • 关键技术:
      • 延迟加载与急切加载:了解何时评估查询。延迟加载将查询延迟到真正需要数据时才进行,但这可能会导致 N+1 查询问题。热切加载,使用 select_lated 或 prefetch_lated,在单个查询中获取相关对象,从而减少命中总数。
      • 联接:如果您需要相关表中的数据,请考虑使用联接查询。 Django 的 select_lated (用于外键关系)和 prefetch_lated (用于多对多或反向外键关系)是你的朋友。
  3. 避免冗余查询:

    • 检查冗余查询,即同一查询被执行多次。这通常可以通过缓存结果或重构代码来避免。
    • 示例:不要在循环内查询相关对象,而是在循环之前获取所有相关对象一次。
  4. 内存注意事项:

    • 虽然减少数据库点击很重要,但也要考虑内存使用情况。将大量数据集加载到内存中可能会导致应用程序速度减慢或崩溃。旨在仅提取您需要的记录/数据。

结论
检查数据库查询的性能是一项随着时间和经验的增长而发展的技能。作为初级开发人员,首先要关注基础知识 - 计算数据库命中率并找到减少命中率的方法。在此过程中,connection.queries、reset_queries 和 Django 的 ORM 功能等工具非常有用。随着时间的推移,您将形成一种仅通过查看代码即可发现性能问题的直觉。在此之前,请依靠此处讨论的工具和技术来指导您。

其他提示:

  1. 了解执行计划: 通过了解 ORM 查询生成的 SQL 执行计划来更深入地了解。 SQL 中的 EXPLAIN 等工具可以帮助您了解数据库引擎如何执行查询,从而深入了解潜在的优化。

给新手开发者的提示:
要开始审查其他人的代码,您不需要了解系统的每个流程。首先检查代码质量和优化等小事情。从第一遍开始,专注于基础知识,最终,您将成为一名出色的审稿人。
另外,在审阅时,请尽量保持礼貌并在评论中提供帮助,而不是傲慢。请记住,目标是改进代码并帮助您的团队,而不仅仅是指出错误。

以上是从开发人员到审阅者:初级开发人员审阅数据库查询的清单的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!