索引有什么作用?
一句話概念
索引(Index) 就像是數據庫里的“目錄”或“書的索引頁”。
它的主要作用是:
加快查詢速度,減少數據庫掃描整張表的次數。
?? 舉個簡單的例子
假設你有一個商品表 products,里面有幾萬條記錄。
如果你執行下面的查詢:
SELECT * FROM products WHERE brand = 'Nike';
-
如果沒有索引,SQLite 必須從頭到尾一行行地去找,叫做全表掃描(Full Table Scan),很慢。
-
如果給
brand字段建了索引:CREATE INDEX idx_product_brand ON products(brand);那么數據庫會像查字典一樣,直接跳到 “Nike” 那一頁,瞬間定位到結果。
?? 索引的作用總結
| 功能 | 說明 |
|---|---|
| ?? 加快查詢速度 | 對 WHERE、JOIN、ORDER BY、GROUP BY 等操作提速 |
| ? 提高排序性能 | 如果查詢語句中帶 ORDER BY category,而該列有索引,會自動利用索引排序 |
| ?? 提高關聯性能 | 當你 JOIN 兩張表時,若連接字段有索引,匹配更快 |
| ?? 幫助唯一性約束 | UNIQUE 索引可以防止重復值(比如 product_code) |
?? 注意事項(索引的代價)
雖然索引很強大,但也有 副作用:
| 問題 | 說明 |
|---|---|
| ?? 插入/更新變慢 | 每次修改數據時,索引也要更新 |
| ?? 占用空間 | 索引要額外占磁盤空間(有時比表還大) |
| ?? 索引太多會拖慢性能 | 不是越多越好,常用的查詢列才值得建索引 |

浙公網安備 33010602011771號