python學習筆記(76) 索引
desc userinfo 3; # 顯示所有列
普通索引:
index 索引名(列名) # 建立表的時候
creat index 索引名 on 表名(列名)
drop index 索引名 on 表名
唯一索引:
unique 索引名(列名) # 建立表的時候
creat unique index 索引名 on 表名(列名)
drop unique index 索引名 on 表名
聯合(組合)索引:
creat index 索引名 on 表名(列名,列名) # unique同理
drop index 索引名 on 表名
主鍵:
primary key (列名)
alter table 表名 add primary key(列名) # 後天建立
作用:
約束
加速查詢
索引:
普通索引:加速查詢
主鍵索引:加速查詢 + 不能為空 + 不能重複
唯一索引:加速查詢 + 不能重複
聯合索引(多列):
聯合主鍵索引
聯合唯一索引
聯合普通索引
最左字首匹配
加速查詢:
select * from tb1 where name = 'asd'
select * from tb1 where id = 999
無索引:從前到後依次查詢
索引:
建立以某種格式儲存的額外檔案
查詢快,插入更新刪除慢
命中索引
索引種類(某種格式儲存):
hash索引:
單值速度快
取範圍速度慢(順序被打亂)
btree索引:
二叉樹(預設,速度快)
覆蓋索引:
select email fron tb1 where email = ''
在索引檔案中直接獲取資料,不去表裡取
索引合併:
select email fron tb1 where email = '' and id = 999
把多個單列索引合併使用
# 沒有組合索引效率高