『壹』 mysql資料庫優化講解之索引:什麼是索引
定義:存在於關系型資料庫中,是一種與表有關的資料庫對象
以存儲方式分類可以分為
B*樹
點陣圖
優點:提高檢索速度
使用原則(何時需要創建索引):
哪些表需要創建索引:
某表常被訪問或某表數據量較大
通常以哪些欄位作為索引:
某欄位常被作為查詢條件
『貳』 MySQL資料庫的四類索引
index ---- 普通索引,數據可以重復,沒有任何限制。
unique ---- 唯一索引,要求索引列的值必須唯一,但允許有空值;如果是組合索引,那麼列值的組合必須唯一。
primary key ---- 主鍵索引,是一種特殊的唯一索引,一個表只能有一個主鍵,不允許有空值,一般是在創建表的同時創建主鍵索引。
組合索引 ---- 在多個欄位上創建的索引,只有在查詢條件中使用了創建索引時的第一個欄位,索引才會被使用。
fulltext ---- 全文索引,是對於大表的文本域:char,varchar,text列才能創建全文索引,主要用於查找文本中的關鍵字,並不是直接與索引中的值進行比較。fulltext更像是一個搜索引擎,配合match against操作使用,而不是一般的where語句加like。
注:全文索引目前只有MyISAM存儲引擎支持全文索引,InnoDB引擎5.6以下版本還不支持全文索引
所有存儲引擎對每個表至少支持16個索引,總索引長度至少為256位元組,索引有兩種存儲類型,包括B型樹索引和哈希索引。
索引可以提高查詢的速度,但是創建和維護索引需要耗費時間,同時也會影響插入的速度,如果需要插入大量的數據時,最好是先刪除索引,插入數據後再建立索引。