資料庫基礎

在有100萬筆資料列的日本會員表格中,考慮分別在會員編號(全部不同)、都道府縣(47種)、性別(2種,大約各半)欄位上建立B+樹索引。在WHERE子句中指定一個欄位的值進行搜尋時,索引效果可能最小的是哪個欄位?

  1. A都道府縣
  2. B性別
  3. C會員編號
查看答案與解析

正確答案:B. 性別

索引能發揮效果,是在符合條件的資料列被縮小到整體極小一部分的時候。會員編號全部不同,符合條件的只有1筆,可透過索引直接找到。都道府縣有47種,若平均分布,一個值大約可縮小到 100萬 ÷ 47 ≒ 2萬1千筆(整體的約2%)。性別有2種且大約各半,無論指定哪個值都有約50萬筆(約50%)符合。透過索引逐筆取出這麼多資料列,往往比從頭依序讀取表格的全表掃描更慢,因此DBMS的最佳化器可能選擇不使用索引的執行方式。像這樣,值的種類越多、能以條件縮小資料列的程度(選擇性)越高的欄位,索引的效果越大。

  • A. 都道府縣有47種,一個值可縮小到整體的約2%,比性別更有效果。
  • B. 正確。無論哪個值都有約一半的資料列符合,因此索引幾乎沒有效果。
  • C. 會員編號全部不同,可縮小到1筆,是索引效果最大的欄位。
練習這個領域 前往領域頁面

相關計算工具

資料庫基礎的其他題目

  1. 在稱為NoSQL的資料庫中,關於鍵值(Key-value)型的特徵,下列何者一般而言正確?
  2. 關於在多台伺服器上放置資料副本的分散式資料庫,下列何者是對CAP定理的適當說明?
  3. 在關聯式資料庫的用語中,相當於表格(關聯)中一筆資料列的是下列何者?
  4. 在關聯式資料庫的表格中,被指定為主鍵的欄位(或欄位組合)必須滿足的條件是下列何者?
  5. 在員工表格(員工編號, 電子郵件, 姓名, 部門)中,員工編號與電子郵件每位員工都不同,且不會是NULL。姓名與部門可能與其他員工相同。列出此表格所有候選鍵的是下列何者?