|
関係データベースの表において、検索速度を向上させるために、列Zにインデックスを付与する。
ア〜エは、列Zの値が等しい行の行の数を示したものである。
インデックスを付与することによって、1行当たりの平均検索速度が最も向上するものはどれか。
ここで、各行は等頻度で検索されるものとする。
| ア |
| データ値 |
行の数 |
| p |
600 |
| q |
600 |
| r |
0 |
| s |
0 |
| t |
0 |
| u |
0 |
|
|
イ |
| データ値 |
行の数 |
| p |
1000 |
| q |
200 |
| r |
0 |
| s |
0 |
| t |
0 |
| u |
0 |
|
| ウ |
| データ値 |
行の数 |
| p |
20 |
| q |
40 |
| r |
80 |
| s |
160 |
| t |
300 |
| u |
600 |
|
|
エ |
| データ値 |
行の数 |
| p |
200 |
| q |
200 |
| r |
200 |
| s |
200 |
| t |
200 |
| u |
200 |
|
答え エ
【解説】
それぞれの場合の検索にかかる時間の期待値を求める。
ここで、n個のデータから検索するのにかかる時間はnとして考える。
| ア |
| データ値 |
行の数 |
| p |
600 |
| q |
600 |
| r |
0 |
| s |
0 |
| t |
0 |
| u |
0 |
では、データが“p”である確率が0.5(=600÷1200)で、600個のデータから検索する時間は600なので
600×(600÷1200) + 600×(600÷1200) = 600 |
| イ |
1000×(1000÷1200) + 200×(200÷1200) = 866.66… |
| ウ |
20×(20÷1200) + 40×(40÷1200) + 80×(80÷1200) + 160×(160÷1200) + 300×(300÷1200) + 600×(600÷1200) = 403.33… |
| エ |
200×(200÷1200) + 200×(200÷1200) + 200×(200÷1200) + 200×(200÷1200) + 200×(200÷1200) + 200×(200÷1200) = 200 |
【キーワード】
・インデックス
【キーワードの解説】
- インデックス(index)
コンピュータで大量のデータから特定のデータへのアクセスを早く行えるように、データをアクセスするときに使用するデータの項目について並び替えたり、アクセスのための索引用のテーブルを作成することです。
もっと、「インデックス」について調べてみよう。
戻る
一覧へ
次へ
|