MySQL數據庫索引

前言

存儲引擎是數據庫的核心,經常使用的MySQL存儲引擎有InnoDB,MyISAM,memory.索引是加速數據的查詢的一種數據結構.數據庫

1. 索引簡介

1.1 索引優勢

  1. 查詢數據塊
  2. 數據惟一性
  3. 加速表之間的鏈接

1.2 索引缺點

  1. 索引會佔用存儲空間,可能比自己的表數據還大
  2. 只對查有利,增長了增刪改的負擔

1.3 使用索引的注意事項

  1. 字段值差異大的數據使用索引(性別列就不要用索引了)
  2. 字符字段能夠只選取字段的前幾位字符創建索引,能簡少存儲數據.

2.兩個重要存儲引擎InnoDB和MyISAM

2.1 InnoDB

2.1.1 特色

  1. 支持事務
  2. 處理數據量巨大
  3. 表數據和索引分開存儲
  4. 支持行級鎖定
  5. 缺省 6B長度主鍵
  6. 主鍵自己就是索引,其索引映射的不是地址,而是主鍵,從而找到行記錄

2.1.2 InnoDB索引

只支持B+樹數據結構

2.2 MyISAM

2.2.1 特色

  1. 不支持事務
  2. 插入和查找極快
  3. 不支持事務
  4. 單純增查數據的首選

2.2.2 MyISAM索引

只支持B+樹設計

2.2.3 memory索引

支持 B+樹和HASH
MySQL數據庫通常默認innoDB存儲引擎.索引

3. 索引的分類

  1. 普通索引和惟一索引
  2. 單列索引和組合索引(組合索引:最左匹配才能使用)
  3. 全文索引:建立分詞,爲每一個分詞映射地址,從而經過找到索引中的分詞而找到數據的地址.
  4. 空間索引

4. 索引設計原則

  1. 並不是越多越好.
  2. 避免對常常更新的表創建過多索引.
  3. 數據量小的表不使用索引.
  4. 索引應該創建在值差別較大的列上.
  5. 頻繁分組操做表上創建組合索引.
  6. 儘可能使用短索引,節省磁盤空間.
相關文章
相關標籤/搜索