mysql----索引


索引:
    優勢:在數據表中有海量數據時能幫助快速查詢記錄。
    劣勢:索引本身也是一張表,佔用磁盤空間,當進行update insert delete操作時耗時更長,因爲需要維護索引表  
    
    索引的分類:
        單值索引:依賴單個列建立的索引,一張表可以有多個單值索引;
        唯一索引:索引列的值必須唯一,允許出現NULL
        複合索引:一個索引依賴表的多個列
        全文索引:只有在myisam的引擎上才能使用,只能在char,varchar,text類型字段上建立索引;
        空間索引:對空間數據類型字段建立的索引;
                
    索引操作:
        創建:create index index_name on table(列名1,列名2);

                   alter table tab_name add index idx_name(列名1,列名2);
        刪除:drop index index_name on table_name;
        查看:show index from table_name;
        自動創建索引:當表定義了主鍵時會自動創建對應的唯一索引;
                        當表定義了外鍵時,會自動創建普通索引;
                
    explain:分析語句
        explain select * from emp where id = 1 \G;
        的結果中如果key爲NULL,表示本次執行沒有依賴索引查詢。
    
    常見的創建索引的場景:
        1.主鍵自動創建唯一索引;
        2.頻發作爲查詢條件的字段;
        3.與其他表中建立外鍵的字段;
        4.where條件後不會跟的字段不用創建索引;
        5.頻發更新的字段不適合創建索引;
        6.排序字段和分組字段適合創建索引。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章