R6秋午後DB 設問3(2)の考え方について
広告
まっつんさん
(No.1)
スレッドタイトルにあるようにR6秋のデータベース設問3(2)の考え方を教えていただきたいです。
いろいろサイトを漁ってみて、利用される頻度の多いカラム、ORDER BY GROUPBYや範囲選択などに利用されるカラムと出てきたのですが、いまいちピンとこず。ドットコムの方々の知恵を貸していただきたいと思いました。
年末で忙しい中ではありますがご教授いただけたら幸いです。よろしくお願いします。
いろいろサイトを漁ってみて、利用される頻度の多いカラム、ORDER BY GROUPBYや範囲選択などに利用されるカラムと出てきたのですが、いまいちピンとこず。ドットコムの方々の知恵を貸していただきたいと思いました。
年末で忙しい中ではありますがご教授いただけたら幸いです。よろしくお願いします。
2024.12.29 18:37
年末だね〜さん
(No.2)
ざっくりと説明します。細かい説明が欲しければ言ってください。
B-Treeインデックスのメインの効果は「(探索条件に指定した列の)検索速度の向上」ですが、そのほかにも「更新パフォーマンスの劣化」、「ソートの高速化」、「重複まとめの高速化」、「グループ化の高速化」などの効果があります。詳しくは割愛します。
でもって、設問3(2)では「検索速度の向上」を目的として、どの列にインデックスを作成するか検討します。
そのため、以下の条件を満たす列にインデックスを作成することを考えます。
①SQL文のWHERE句に指定されている列
ただし、B-Treeインデックスは、格納されている値の種類が少ない列に作成しても検索速度が向上しません。そのため、以下の条件も満たす列に絞ります。
②カーディナリティが高、中の列
また、問題文の記載事項から、以下の条件でも絞ります。
③主キー以外の列(主キーには自動でインデックスが作成されるため別途作成不要)
④商品名、商品検索以外の列(全文検索エンジンを使用するためインデックス作成不要)
①②③④の条件を満たす列は以下であり、これが解答になります。
出品表:カテゴリID、出品価格
カテゴリ表:上位カテゴリID
B-Treeインデックスのメインの効果は「(探索条件に指定した列の)検索速度の向上」ですが、そのほかにも「更新パフォーマンスの劣化」、「ソートの高速化」、「重複まとめの高速化」、「グループ化の高速化」などの効果があります。詳しくは割愛します。
でもって、設問3(2)では「検索速度の向上」を目的として、どの列にインデックスを作成するか検討します。
そのため、以下の条件を満たす列にインデックスを作成することを考えます。
①SQL文のWHERE句に指定されている列
ただし、B-Treeインデックスは、格納されている値の種類が少ない列に作成しても検索速度が向上しません。そのため、以下の条件も満たす列に絞ります。
②カーディナリティが高、中の列
また、問題文の記載事項から、以下の条件でも絞ります。
③主キー以外の列(主キーには自動でインデックスが作成されるため別途作成不要)
④商品名、商品検索以外の列(全文検索エンジンを使用するためインデックス作成不要)
①②③④の条件を満たす列は以下であり、これが解答になります。
出品表:カテゴリID、出品価格
カテゴリ表:上位カテゴリID
2024.12.29 21:10
まっつんさん
(No.3)
年末だね~さん返信ありがとうございます
すごく腑に落ちました!!
①のWHEREで指定されているカラムという部分が完全に抜けてました笑
良いお年をお過ごしください
すごく腑に落ちました!!
①のWHEREで指定されているカラムという部分が完全に抜けてました笑
良いお年をお過ごしください
2024.12.31 20:54
広告
返信投稿用フォーム
スパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
広告