天天看點

Mysql實戰詳解7:MySql索引說明

一、索引說明

索引分單列索引群組合索引。

A.單列索引,即一個索引隻包含單個列,一個表可以有多個單列索引,但這不是組合索引。

B.組合索引,即一個索引包含多個列。

索引也會有它的缺點:

雖然索引大大提高了查詢速度,同時卻會降低更新表的速度,

1. 如對表進行INSERT、UPDATE和DELETE。因為更新表時,MySQL不僅要儲存資料,還要儲存一下索引檔案。

2. 建立索引會占用磁盤空間的索引檔案。

二、索引類型

Mysql目前主要有以下幾種索引類型:FULLTEXT,HASH,BTREE,RTREE。

1. FULLTEXT

即為全文索引,目前隻有MyISAM引擎支援。其可以在CREATE TABLE ,ALTER TABLE ,CREATE INDEX 使用,不過目前隻有 CHAR、VARCHAR ,TEXT 列上可以建立全文索引。

全文索引并不是和MyISAM一起誕生的,它的出現是為了解決WHERE name LIKE “%word%"這類針對文本的模糊查詢效率較低的問題。

2. HASH

由于HASH的唯一(幾乎100%的唯一)及類似鍵值對的形式,很适合作為索引。

HASH索引可以一次定位,不需要像樹形索引那樣逐層查找,是以具有極高的效率。但是,這種高效是有條件的,即隻在“=”和“in”條件下高效,對于範圍查詢、排序及組合索引仍然