索引方面的知識總結

(1)使用ALTER TABLE語句建立索引。
語法以下:
alter table table_name add index index_name (column_list) ;   #普通索引
alter table table_name add unique (column_list) ;                    #惟一索引
alter table table_name add primary key (column_list) ;            #主鍵索引 數據庫

(2)使用ALTER TABLE語句刪除索引。併發

語法以下:
alter table table_name drop index index_name ;網站

至於全文索引不是很經常使用,這裏就很少作介紹。ui

 

例子:demo表以下code

 

 

ALTER TABLE demo ADD UNIQUE u_quee(area_id)  給demo表的area_id字段增長惟一索引blog

ALTER TABLE demo add     UNIQUE    ui_name(rank,area_id)   給demo表的area_id 和rank 字段都增長惟一索引索引

 

ALTER TABLE demo drop  index  u_quee     刪除demo表的惟一索引table

 

其中惟一索引在電商買賣中庫存防止超賣常常使用。電商

insert into buy_record... 

if(惟一索引報錯? (插入數據庫報錯)){
    拋異常,已經秒過了,回滾..
}

 

固然還能夠加鎖實現(小型網站):class

UPDATE FROM goods SET num = num - 1 WHERE goodsid = 2 AND num > 0 

  這條語句僅僅只是加多了個 WHERE 條件 num > 0 可是其足以應付通常的應用的併發狀況

  例如:

  當前庫存 num 爲 1

  且有兩個用戶同時發起下單請求

    那麼這時候 稍微慢的那個用戶就會遇到 num = 0 的狀況 因此where條件不成立 插入失敗 結果就是隻有一我的下單成功。 

  固然還有更多狀況可以使用樂觀鎖解決 例如取不重複數據時 可多添加幾個where 字段 取完即更新它 那麼下次就不會有其餘用戶取到

相關文章
相關標籤/搜索