mysql优化之加锁

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql优化之加锁相关的知识,希望对你有一定的参考价值。

 在电商项目的抢购或其他并发量比较大的项目中,往往会遇到很多人同时操作一张表的情况,这样就会造成读写的错误,特别是写

先看一下不加锁会出现什么情况

先创建一张表

技术分享

正常情况下,右边的php文件执行几次数据表中的id就加几,应该如下图所示,但是高并发时并不是这样

 技术分享

 

现在用ab模拟并发的情况,这里一共请求100次,我们想要的结果是5+100=105,

 技术分享

 

来看下结果,php文件执行了100次数据却只加到46,明显不是我们想要的结果

 技术分享

 

那么现在来加锁试一下

 技术分享

 

再将文件执行100次

 技术分享

 

查看结果,46+100=146正是我们想要的结果

技术分享 

优化:

  给数据库加锁存在一种弊端,就是加锁操作时,别人无法读取数据库数据,造成堵塞

想让修改时别人可以正常读取数据,可以使用文件锁

 技术分享

 

执行测试命令

 技术分享

 

查看结果,正是我们想要的

 技术分享

 

以上是关于mysql优化之加锁的主要内容,如果未能解决你的问题,请参考以下文章

大牛总结的MySQL锁优化

MySQL 原理与优化:Update 优化

MySQL面试总结

Day894.加锁规则的一些问题 -MySQL实战

MySQL优化

mysql索引与查询优化