目錄
一、索引的介紹
索引:是創建在數據庫表中,是對數據庫表中的一列或者多列的值進行排序的一種結果。
作用:提高查詢效率(B樹 / 哈希結構)
索引優點:
提高查詢效率
索引缺點:
索引並非越多越好,過多的索引會導致CPU使用率降低,由於數據的改動會引起索引文件的改動,過多的索引會引起磁盤I/O頻繁,造成CPU負荷太重。
(創建一個的索引,是以文件的形式存儲的,用這個索引,先要把對應的索引的文件從磁盤加載到內存上,從內存上先讀索引,通過索引找數據。如果索引越多,那麼創建文件就越多,這是除了數據本身,需要額外佔用的空間,索引的讀取是需要 磁盤與內存的一個交互,是一個IO的過程,索引越多,交互越頻繁,對系統性能有所影響)
索引是數據的目錄,能快速定位數據的位置。
MYD : 數據 MYI : 索引 (數據結構)
索引是有代價的,提高了查詢速度,降低了增,刪,改的速度。(目錄會相應改變)
一般在查詢比較頻繁的列上加,重複度低的列加,效果好。
比如,身份證號加,好。男女性別,加,意義不大。
二、索引的分類
普通索引:
沒有任何限制條件,可以給任意類型的字段創建普通索引
唯一性索引:
使用 unique 修飾的字段,值不能重複,主鍵索引隸屬於唯一性索引
主鍵索引:
使用 primary key 修飾的字段會自動創建索引 (InnoDB存儲引擎)
單列索引:
在一個字段上創建索引
多列索引:
在表的多個字段上創建索引,把兩列或多列的值看成一個整體,然後建立索引
全文索引:
使用 fulltext 參數可以設置全文索引,只支持char、varchar、text 類型的字段上,
常用於數據量比較大的字符串類型上,可以提高查詢速度;只有MyIsam存儲引擎支持
三、索引的創建與刪除