資料庫基礎

在有100萬筆資料列的會員表格之會員編號欄位上建立了B+樹索引。一般可預期的效果與代價組合,下列何者正確?

  1. AWHERE 會員編號 = 12345 這類搜尋變快,但每次新增或更新資料列時也要更新索引,因此寫入變慢
  2. B所有欄位的搜尋都變快,而且沒有代價
  3. C表格的資料列會依會員編號排序,因此任何搜尋都變快,而且儲存容量減半
查看答案與解析

正確答案:A. WHERE 會員編號 = 12345 這類搜尋變快,但每次新增或更新資料列時也要更新索引,因此寫入變慢

索引是從表格特定欄位的值,快速找出具有該值之資料列位置的資料結構,關聯式資料庫常使用B+樹。若沒有索引,要找出 WHERE 會員編號 = 12345 的資料列,就必須依序檢查100萬筆資料列(全表掃描),而使用B+樹只要從根到葉沿著幾層就能找到。例如每個節點分出100個分支,因為 100 × 100 × 100 = 100萬,大約3層即可。B+樹的葉節點依值的順序相連,因此也能用於BETWEEN之類的範圍搜尋與ORDER BY的排序。另一方面,每次新增、更新、刪除資料列時也必須更新索引,因此寫入會變慢,也需要索引所占的儲存容量。在未建立索引的欄位上搜尋不會變快。

  • A. 正確。搜尋變快,但每次寫入維護索引的負擔會增加。
  • B. 索引只對建立索引的欄位之搜尋有效,而且有寫入負擔與儲存容量的代價。
  • C. 索引是與表格分開建立的資料結構,儲存容量反而會增加。
練習這個領域 前往領域頁面

相關計算工具

資料庫基礎的其他題目

  1. 在有100萬筆資料列的日本會員表格中,考慮分別在會員編號(全部不同)、都道府縣(47種)、性別(2種,大約各半)欄位上建立B+樹索引。在WHERE子句中指定一個欄位的值進行搜尋時,索引效果可能最小的是哪個欄位?
  2. 在稱為NoSQL的資料庫中,關於鍵值(Key-value)型的特徵,下列何者一般而言正確?
  3. 關於在多台伺服器上放置資料副本的分散式資料庫,下列何者是對CAP定理的適當說明?
  4. 在關聯式資料庫的用語中,相當於表格(關聯)中一筆資料列的是下列何者?
  5. 在關聯式資料庫的表格中,被指定為主鍵的欄位(或欄位組合)必須滿足的條件是下列何者?