1. 程式人生 > 其它 >mysql數量級_30.關於MySQL索引的定義及理解

mysql數量級_30.關於MySQL索引的定義及理解

技術標籤:mysql數量級

undefined_1440w.jpg?source=172ae18b

更多內容來源:http://mp.weixin.qq.com/mp/homepage?__biz=MzA5OTQ1ODE1NQ==&hid=6&sn=843337a7d9931839214ec8f861ac2164&scene=18#wechat_redirect

1、定義
索引在MySQL中也叫做“鍵”,是儲存引擎用於快速找到記錄的一種資料結構。索引對於良好的效能
非常關鍵,尤其是當表中的資料量越來越大時,索引對於效能的影響愈發重要。
索引優化應該是對查詢效能優化最有效的手段了。索引能夠輕易將查詢效能提高好幾個數量級。
索引相當於字典的音序表,如果要查某個字,如果不使用音序表,則需要從幾百頁中逐頁去查。

可想而知!!非常重要的概念!!!
2、MySQL的索引分類

索引分類
1.普通索引index :加速查詢
2.唯一索引
主鍵索引:primary key :加速查詢+約束(不為空且唯一)
唯一索引:unique:加速查詢+約束 (唯一)
3.聯合索引
-primary key(id,name):聯合主鍵索引
-unique(id,name):聯合唯一索引
-index(id,name):聯合普通索引
4.全文索引fulltext :用於搜尋很長一篇文章的時候,效果最好。
5.空間索引spatial :瞭解就好,幾乎不用
3、建立

善用幫助文件
help create
help create index
==================
1.建立索引
    -在建立表時就建立(需要注意的幾點)
    create table s1(
    id int ,#可以在這加primary key
    #id int index #不可以這樣加索引,因為index只是索引,沒有約束一說,
    #不能像主鍵,還有唯一約束一樣,在定義欄位的時候加索引
    name char(20),
    age int,
    email varchar(30)
    #primary key(id) #也可以在這加
    index(id) #可以這樣加
    );
    -在建立表後在建立
    create index name on s1(name); #新增普通索引
    create unique age on s1(age);新增唯一索引
    alter table s1 add primary key(id); #新增住建索引,也就是給id欄位增加一個主鍵約束
    create index name on s1(id,name); #新增普通聯合索引
2.刪除索引
    drop index id on s1;
    drop index name on s1; #刪除普通索引
    drop index age on s1; #刪除唯一索引,就和普通索引一樣,不用在index前加unique來刪,直接就可以刪了
    alter table s1 drop primary key; #刪除主鍵(因為它新增的時候是按照alter來增加的,那麼我們也用alter來刪)

來自 部落格園 bypp/p/7755307.html