1. 程式人生 > >python學習筆記(76) 索引

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

  把多個單列索引合併使用

  # 沒有組合索引效率高