建表的时候索引为什么不直接加在number上面,而是加在start-time,end-time,create-time上

来源:3-1 秒杀操作-并发优化-1

魄弹兽

2018-05-11 16:55

建表的时候索引为什么不直接加在number上面,而是加在start-time,end-time,create-time上

直接加在number上不是更方便吗,也会让update操作有行级锁.

写回答 关注

2回答

  • 慕粉1852402560
    2019-02-26 15:36:20
    已采纳

    MySQL的innodb存储引擎支持行级锁,innodb的行锁是通过给索引项加锁实现的,这就意味着只有通过索引条件检索数据时,innodb才使用行锁,否则使用表锁。
    根据当前的数据更新语句(UPDATE user set name=‘11111’ where account=‘1’),该条件字段account并没有添加索引,所以导致数据表被锁。

  • qq_Harrison_1
    2018-05-15 19:38:08

    这节课里面没有说到创建数据库表,课程中的sql是存储过程,其中你说到相关start-time、end-time、create-time在这节课中出现的位置是在跟新数据库的商品的数量上,作用是检测当前时间是否是商品的抢购时间。

Java高并发秒杀API之高并发优化

Java实现高并发秒杀API的第四门课,小伙伴一定可以从中受益

78601 学习 · 170 问题

查看课程

相似问题