首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 索引原理與最佳實踐:從 B+ 樹到碎片整理

     編輯:MySQL 綜合教學

什麼是索引?

索引是資料庫物件,透過快速路徑定位資料,減少磁碟 I/O,加速查詢。它獨立於表儲存,但不能獨立存在(屬於某表),隨表自動維護、刪除。索引如書的目錄——幾乎沒有書沒目錄,也幾乎沒有表不需索引。

建立與使用

CREATE INDEX idx_name ON table_name (column_name);

查詢時在 WHERE 後加上索引欄位即可觸發。

索引底層原理(簡化)

索引頁儲存 index_key | 行指標(loc),指向表資料的物理位置。查詢時先掃描索引頁定位 loc,再回表取完整行。

三種資料存取方式

  1. 全表掃描:掃描所有行,定位磁碟位置,慢。
  2. 索引掃描:走索引頁定位,快。
  3. 共享鎖/語句:並發控制層面。

索引建立原則與維護

  • 優先在高頻查詢欄位(WHERE、JOIN、ORDER BY)建索引。
  • 小表(列少、行少)不適合建索引,全表掃描反而更快。
  • 碎片整理:大量 INSERT/DELETE/UPDATE 後產生索引碎片,影響效能。解法:DROP INDEX 再 CREATE INDEX 重建(或 OPTIMIZE TABLE)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved