• 技术文章 >数据库 >MySQL

    mysql行锁的优化

    小妮浅浅小妮浅浅2021-05-24 14:50:38原创213

    1、优化方法

    尽可能让所有数据检索都通过索引来完成,避免无索引行或索引失效导致行锁升级为表锁。

    尽可能避免间隙锁带来的性能下降,减少或使用合理的检索范围。

    尽可能减少事务的粒度,比如控制事务大小,而从减少锁定资源量和时间长度,从而减少锁的竞争等,提供性能。

    尽可能低级别事务隔离,隔离级别越高,并发的处理能力越低。

    2、实例

    CREATE TABLE `user` (
      `name` VARCHAR(32) DEFAULT NULL,
      `count` INT(11) DEFAULT NULL,
      `id` INT(11) NOT NULL AUTO_INCREMENT,
      PRIMARY KEY (`id`)
    ) ENGINE=INNODB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8
     
    -- 这里,我们建一个user表,主键为id
     
     
     
    -- A通过主键执行插入操作,但事务未提交
    update user set count=10 where id=1;
    -- B在此时也执行更新操作
    update user set count=10 where id=2;
    -- 由于是通过主键选中的,为行级锁,A和B操作的不是同一行,B执行的操作是可以执行的
     
     
     
    -- A通过name执行插入操作,但事务未提交
    update user set count=10 where name='xxx';
    -- B在此时也执行更新操作
    update user set count=10 where id=2;

    以上就是mysql行锁的优化,希望对大家有所帮助。更多mysql学习指路:MySQL

    专题推荐:mysql行锁
    上一篇:mysql死锁的四个条件 下一篇:查看mysql版本的命令

    相关文章推荐

    • mysql共享锁是什么• mysql中如何共享读锁• mysql使用表锁的两种情况• mysql中通信协议的介绍• mysql查询的执行过程• mysql索引的最左原则是什么• eclipse连接mysql• mysql使用关联查询的注意点• mysql中LIMIT分页如何优化• mysql查询优化策略有哪些• mysql乐观锁如何实现• mysql排它锁是什么• mysql中行锁是什么• mysql如何解除死锁• mysql死锁的四个条件
    品易云

    全部评论我要评论

  • 取消发布评论发送
  • 

    Python学习网