セクション 1. 章 14
single
チャレンジ:クエリ最適化
メニューを表示するにはスワイプしてください
この実践的なチャレンジでは、products テーブルと sales テーブルを使用した結合クエリの分析と最適化を行います。クエリ最適化は、特にデータ量が増加するにつれて、データベースのパフォーマンスを効率的に保つために不可欠です。遅いクエリは、データベースがどのように実行しているかを理解し、適切な インデックス を適用し、より良い実行計画のためにクエリを書き換えることで、改善できる場合が多くあります。
まず、"Electronics" カテゴリ内の各商品の合計販売数量を取得する、次の結合クエリを確認します:
SELECT p.name, SUM(s.quantity) AS total_sold
FROM products p
JOIN sales s ON p.product_id = s.product_id
WHERE p.category = 'Electronics'
GROUP BY p.name;
このクエリは、特に結合やフィルタリングのステップが非効率な場合、データセットが大きくなると最適に動作しない可能性があります。EXPLAIN を使用してクエリを分析し、ボトルネックを特定し、最適化戦略を適用することが目標です。以下のステップを検討してください:
EXPLAINを使って現在のクエリ実行計画を確認し、シーケンシャルスキャンや非効率な結合がないか調査;- 結合やフィルタ条件に基づき、どのカラムにインデックスを作成すると効果的かを判断;
- 結合やフィルタリングを高速化するために適切なインデックスを作成;
- 必要に応じて、より早い段階でのフィルタリングや結合順序の調整など、クエリを書き換えてさらなるパフォーマンス向上を図る。
これらの手法を適用することで、実際のSQL最適化作業を体験し、クエリの速度やリソース使用量を大幅に改善するスキルを身につけることができます。
タスク
スワイプしてコーディングを開始
「Electronics」カテゴリ内の各製品について、販売された合計数量を取得する結合クエリが与えられています。このクエリを分析し、より高いパフォーマンスを得られるよう最適化してください。
- 提供された結合クエリに対して
EXPLAINを使用し、実行計画を分析。 - 結合やフィルタリング処理のパフォーマンス向上に有効なインデックスを特定し、作成。
- 必要に応じて、結合前にフィルタリングを行うなど、さらなる最適化のためにクエリを書き換え。
- 最適化後のクエリに対して
EXPLAINを実行し、最適化の効果を示す。
解答
すべて明確でしたか?
フィードバックありがとうございます!
セクション 1. 章 14
single
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください