Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ チャレンジ:クエリ最適化 | セクション
SQL最適化とクエリ機能
セクション 1.  14
single

single

bookチャレンジ:クエリ最適化

メニューを表示するにはスワイプしてください

この実践的なチャレンジでは、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 を実行し、最適化の効果を示す。

解答

Switch to desktop実践的な練習のためにデスクトップに切り替える下記のオプションのいずれかを利用して、現在の場所から続行する
すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 1.  14
single

single

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

some-alt