WEB技术之后端技术之二

MySQL锁机制和PHP锁机制

PHPer 2023-06-23 154 0 0

模拟准备--如何模拟高并发访问一个脚本:apache安装文件的bin/ab.exe可以模拟并发量 -c 模拟多少并发量 -n 一共请求多少次 http://请求的脚本

例如:cmd: apache安装路径/bin/ab.exe -c 10 -n 10http://web.test.com/test.php【切入正题】MYSQL中的锁:语法 :LOCK TABLE 表名1 READ|WRITE, 表名2 READ|WRITE .................. 【锁表】UNLOCK TABLES 【释放表】

Read:读锁|共享锁 : 所有的客户端只能读这个表不能写这个表Write:写锁|排它锁: 所有当前锁定客户端可以操作这个表,其他客户端只能阻塞注意:在锁表的过程中只能操作被锁定的表,如果要操作其他表,必须把所有要操作的表都锁定起来!PHP中的文件锁 (锁的是文件,不是表)文件锁的文件与表有什么关系?:一点关系也没有,与令牌相似,谁拿到谁操作。所以表根本没锁。测试时,有个文件就行,叫什么名无所谓总结:项目中应该只使用PHP中的文件锁,尽量避免锁表,因为如果表被锁定了,那么整个网站中所有和这个表相关的功能都被拖慢了(例如:前台很多用户一直下订单,商品表mysql锁表,其他与商品表相关的操作一直处于阻塞状态【读不出来商品表】,因为一个功能把整个网站速度拖慢)。我的一个项目就是O2O外卖,中午12-2点,晚上6点都是订单高并发时,这种情况下,MySQL锁显然是不考虑的,用户体验太差。其实根据实际的需求,外卖可以不用设计库存量的,当然除了秒杀活动模块还是需要php文件锁的。应用场景:1. 高并发下单时,减库存量时要加锁2. 高并发抢单、抢票时要使用MySQL锁示例代码:

<?php
/**
模拟秒杀活动-- 商品100件
CREATE TABLE a
(
    id int comment '模拟100件活动商品的数量'
);
INSERT INTO a VALUES(100);
模仿:以10的并发量访问这个脚本!    使用apache自带的ab.exe软件
 */
error_reporting(0);
mysql_connect('localhost','root','admin123');
mysql_select_db('test');
 
# mysql 锁
mysql_query('LOCK TABLE a WRITE');// 只有一个客户端可以锁定表,其他客户端阻塞在这
$rs = mysql_query('SELECT id FROM a');
$id = mysql_result($rs, 0, 0);
if($id > 0)
{
    --$id;
    mysql_query('UPDATE a SET id='.$id);
}
 
# mysql 解锁
mysql_query('UNLOCK TABLES');

PHP文件锁示例代码:...

立即注册
更新于:2023-06-23 22:24:54
    您需要登录后才可以评论。 立即注册
    相关内容

    Centos7利用yum安装apache+mysql8+php7 一篇搞定!

    PHP strpos() 对比 mysql locate()

    Centos中查看nginx、apache、php、mysql配置文件路径

    php报错 Error: Variable 'sql_mode' can't be set to the value of 'M...

    PHP与APP

    PHP是否可以应用于App开发

    推荐内容

    分享几个好用的bt搜索bt资源下载网址网站

    影视电影剧集动漫综艺bt资源在线播放网址网站推荐分享

    全网最新bt磁力搜索引擎bt资源bt网站网址分享

    人气美女女优百度指数排行榜(波多野结衣,苍井空,三上悠亚,深田咏美,桥本有菜,北条...

    最强人造人深田咏美,业界的社交女王

    人生起起落落的三上悠亚,成名前的清纯风,怎么搭配出来的?

    业内第一大长腿,桥本有菜的腿究竟有多长

    波多野结衣,岛国业界著作最多的超级劳模

    日本AV界NO.1,苍井空是多少宅男的疯狂?

    美女女优视频混剪 This Girl-Laza Morgan

    怎样使用V2Ray代理和SSTap玩如魔兽世界/绝地求生/LOL台服/战地3/黑色沙漠/彩...

    sstap游戏代理教程 从此玩如魔兽世界/绝地求生/LOL台服/战地3/黑色沙漠/彩虹六...

    影视电影剧集动漫综艺bt资源在线播放网址网站推荐分享