mysql 多列唯一索引在事务中select for update是否行锁

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 多列唯一索引在事务中select for update是否行锁相关的知识,希望对你有一定的参考价值。

参考技术A 代码如下:
vipMember = SELECT * FROM vip_member WHERE
uid=1001 LIMIT 1 # 查uid为1001的会员if vipMember.end_at < NOW():
UPDATE
vip_member SET start_at=NOW(), end_at=DATE_ADD(NOW(), INTERVAL 1 MONTH),
active_status=1, updated_at=NOW() WHERE uid=1001
else:
UPDATE
vip_member SET end_at=DATE_ADD(end_at, INTERVAL 1 MONTH), active_status=1,
updated_at=NOW() WHERE uid=1001

MySQL专题八:索引

MySQL专题八:索引

8.1. 索引类型

  • 主键索引
    默认mysql会为主键建立索引

  • 唯一索引
    用来保证一列或多列的唯一值,避免重复值

  • 全文索引

  • 多列索引

8.2. 索引创建

下面的index_keyword可以是PRIMARY KEY, FOREIGN KEYUNIQUE INDEX, INDEX, and FULLTEXT INDEX

  • CREATE TABLE语句中
CREATE TABLE table_name (
       field_name_1 field_type_1,
       ...
       field_name_n field_type_n,
       index_keyword index_name (field_name_1,field_name_2,...)
       ) ENGINE=InnoDB;
  • ALTER TABLE语句中
ALTER TABLE table_name
ADD CONSTRAINT constraint_name index_keyword(field_name_1,field_name_2,...);
  • CREATE INDEX语句中
CREATE index_keyword index_name
ON table_name(field_name_1,field_name_2,...);


以上是关于mysql 多列唯一索引在事务中select for update是否行锁的主要内容,如果未能解决你的问题,请参考以下文章

MySQL------MySQL 索引事务与存储引擎

MySQL处理重复键错误插入具有多个唯一索引的表;不是多列唯一索引

互联网行业中最常用的数据库——MySQL 索引事务与存储引擎

MySQL 最左前缀(Leftmost Prefix) & 组合索引(复合索引,多列索引)

MySQL专题八:索引

MySQL专题八:索引