码迷,mamicode.com
首页 > 其他好文 > 详细

索引方面的知识总结

时间:2019-10-12 01:50:46      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:record   int   update   ble   成功   情况   HERE   电商   list   

(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 ;

至于全文索引不是很常用,这里就不多做介绍。

 

例子:demo表如下

技术图片

 

 

ALTER TABLE demo ADD UNIQUE u_quee(area_id)  给demo表的area_id字段增加唯一索引

ALTER TABLE demo add     UNIQUE    ui_name(rank,area_id)   给demo表的area_id 和rank 字段都增加唯一索引

 

ALTER TABLE demo drop  index  u_quee     删除demo表的唯一索引

 

其中唯一索引在电商买卖中库存防止超卖经常使用。

insert into buy_record... 

if(唯一索引报错? (插入数据库报错)){
    抛异常,已经秒过了,回滚..
}

 

当然还可以加锁实现(小型网站):

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

  这条语句仅仅只是加多了个 WHERE 条件 num > 0 但是其足以应付一般的应用的并发情况

  例如:

  当前库存 num 为 1

  且有两个用户同时发起下单请求

    那么这时候 稍微慢的那个用户就会遇到 num = 0 的情况 所以where条件不成立 插入失败 结果就是只有一个人下单成功。 

  当然还有更多情况可使用乐观锁解决 例如取不重复数据时 可多添加几个where 字段 取完即更新它 那么下次就不会有其他用户取到

 

索引方面的知识总结

标签:record   int   update   ble   成功   情况   HERE   电商   list   

原文地址:https://www.cnblogs.com/wujf-myblog/p/11657860.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!