「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > 開発者からレビュー担当者へ: データベース クエリをレビューするためのジュニア開発者のチェックリスト

開発者からレビュー担当者へ: データベース クエリをレビューするためのジュニア開発者のチェックリスト

2024 年 11 月 8 日に公開
ブラウズ:925

開発者として、機能的であるだけでなく、パフォーマンスが最適化された高品質のコードを提供することが重要です。開発者ドメインでの 3 年間で、私は実践的な開発者からレビュー担当者の役割に移行しました。レビュー中に私が重点を置いた重要な領域の 1 つは、データベース クエリの最適化です。

データベース クエリに注目する理由
データベース クエリは、アプリケーションのパフォーマンスに大きな影響を与える可能性があります。適切に作成されたクエリはデータを効率的にフェッチできますが、不適切に作成されたクエリは過剰なデータベース ヒットを引き起こし、システム全体の速度を低下させる可能性があります。若手開発者は、コード レビュー中にこれらのクエリのパフォーマンスをどのように評価すればよいか疑問に思うかもしれません。これが私の頼りになるチェックリストです。

データベース クエリをレビューするためのチェックリスト

  1. データベースのヒット数:

    • 最初のステップは、コードによってデータベースにヒットした回数を確認することです。データベースへのヒットごとにレイテンシーが増加する可能性があるため、一般にヒット数が少ないほどパフォーマンスが向上します。
    • プロのヒント: Django の connection.queries とreset_queries を使用して、実行されたクエリの数とそれぞれにかかる時間を追跡します。例えば: From Developer to Reviewer: A Junior Developer
  2. ヒット数の削減:

    • ヒット数がわかったら、次のステップはヒット数を減らすことができるかどうかを確認することです。データベース ヒットの削減は、多くの場合、クエリを最適化するか、複数のクエリを 1 つに結合することで実現できます。
    • 主要なテクニック:
      • Lazy Loading vs. Eager Loading: クエリがいつ評価されるかを理解します。遅延読み込みでは、データが実際に必要になるまでクエリが遅延しますが、これにより N 1 クエリの問題が発生する可能性があります。 select_関連付けまたはプリフェッチ_関連付けを使用した積極的な読み込みは、単一のクエリで関連オブジェクトをフェッチし、ヒットの合計数を減らします。
      • 結合: 関連テーブルのデータが必要な場合は、結合クエリの使用を検討してください。ここでは、Django の select_popular (外部キー関係用) と prefetch_popular (多対多または逆外部キー関係用) が友達です。
  3. 冗長なクエリの回避:

    • 同じクエリが複数回実行される冗長なクエリをチェックします。これは多くの場合、結果をキャッシュするかコードを再構築することで回避できます。
    • 例: ループ内で関連オブジェクトをクエリする代わりに、ループの前にすべての関連オブジェクトを 1 回フェッチします。
  4. メモリに関する考慮事項:

    • データベース ヒットを減らすことは重要ですが、メモリ使用量も考慮してください。大規模なデータセットをメモリに読み込むと、アプリケーションの速度が低下したり、クラッシュしたりする可能性があります。必要なレコード/データのみを取り込むことを目指してください。

結論
データベース クエリのパフォーマンスをレビューすることは、時間と経験によって培われるスキルです。若手開発者は、データベースのヒット数を数え、ヒット数を減らす方法を見つけるという基本に集中することから始めます。このプロセスでは、connection.queries、reset_queries、Django の ORM 機能などのツールが非常に役立ちます。時間が経つにつれて、コードを見るだけでパフォーマンスの問題を見つける直感が身につくでしょう。それまでは、ここで説明したツールとテクニックを参考にしてください。

追加のヒント:

  1. 実行計画を理解する: ORM クエリによって生成される SQL 実行プランを理解することで、さらに深く掘り下げていきます。 SQL の EXPLAIN などのツールは、データベース エンジンがクエリをどのように実行しているかを理解するのに役立ち、潜在的な最適化についての洞察を得ることができます。

初心者向けのヒント:
他の人のコードのレビューを始めるのに、システムのすべてのフローを知る必要はありません。コードの品質や最適化などの小さなことから始めます。基本に重点を置いて最初のパスを実行することから始めて、最終的には優れたレビュー担当者になれるでしょう。
また、レビューする際は、傲慢になるのではなく、礼儀正しく有益なコメントを心がけてください。目標はコードを改善してチームを助けることであり、間違いを指摘することだけではないことを忘れないでください。

リリースステートメント この記事は次の場所に転載されています: https://dev.to/aman-iri/from-developer-to-reviewer-a-junior-developers-checklist-for-reviewing-database-queries-4kdm?1 侵害がある場合、study_golang @163.comdelete までご連絡ください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3