广告
返回顶部
首页 > 资讯 > 数据库 >MySQL锁机制&&PHP锁机制,应用在哪些场景中?
  • 303
分享到

MySQL锁机制&&PHP锁机制,应用在哪些场景中?

MySQL锁机制&&PHP锁机制应用在哪些场景中? 2016-06-02 15:06:41 303人浏览 绘本
摘要

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

MySQL锁机制&&PHP锁机制,应用在哪些场景中?

 

正文内容

模拟准备--如何模拟高并发访问一个脚本:apache安装文件的bin/ab.exe可以模拟并发

-c 模拟多少并发量 -n 一共请求多少次 Http://请求的脚本

例如:cmd: apache安装路径/bin/ab.exe -c 10 -n 10 http://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锁示例代码

 
 
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文件锁示例代码:

 
 
error_reporting(0); 
mysql_connect("localhost","root","admin123"); 
mysql_select_db("test"); 
# php中的文件锁 
$fp = fopen("./a.lock", "r"); // php的文件锁和表没关系,随便一个文件即可 
flock($fp, LOCK_EX);// 排他锁 


$rs = mysql_query("SELECT id FROM a"); 
$id = mysql_result($rs, 0, 0); 
if($id > 0) 
{ 
    --$id; 
    mysql_query("UPDATE a SET id=".$id); 
} 
# php的文件锁,释放锁 
flock($fp, LOCK_UN); 
fclose($fp);

 

您可能感兴趣的文档:

--结束END--

本文标题: MySQL锁机制&&PHP锁机制,应用在哪些场景中?

本文链接: https://www.lsjlt.com/news/6904.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL锁机制&&PHP锁机制,应用在哪些场景中?
      正文内容 模拟准备--如何模拟高并发访问一个脚本:apache安装文件的bin/ab.exe可以模拟并发量 -c 模拟多少并发量 -n 一共请求多少次 http://请求的脚本 例如:cmd: apache安装路径/...
    99+
    2016-06-02
    MySQL锁机制&&PHP锁机制 应用在哪些场景中?
  • MySQL锁机制及应用场景是什么
    本文小编为大家详细介绍“MySQL锁机制及应用场景是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“MySQL锁机制及应用场景是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。锁的概述MySQL锁是操作My...
    99+
    2023-07-05
  • 深入了解MySQL锁机制及应用场景
    目录锁的概述锁的分类锁的应用场景数据库事务管理多线程程序开发数据库的备份和恢复对于在线游戏等高并发应用场景锁的具体使用方法锁的应用实例总结锁的概述 mysql锁是操作MySQL数据库时常用的一种机制。MySQL锁可以保证...
    99+
    2023-03-31
    了解MySQL锁机制 MySQL应用场景
  • 怎么在php中操作mysql锁机制
    今天就跟大家聊聊有关怎么在php中操作mysql锁机制,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。php的框架有哪些php的框架:1、Laravel,Laravel是一款免费并且开...
    99+
    2023-06-14
  • 队列在PHP与MySQL中的消息分发机制及应用场景
    摘要:队列是一种常见的消息传递机制,在PHP与MySQL中的应用场景非常广泛。本文将介绍队列在PHP与MySQL中的消息分发机制和应用场景,并提供具体的代码示例。一、引言队列是一个典型的先进先出(FIFO)的数据结构,在软件开发中被广泛应用...
    99+
    2023-10-21
    应用场景 队列 消息分发
  • Java中异步处理机制的应用场景有哪些
    Java中异步处理机制的应用场景有哪些?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。       通...
    99+
    2023-05-31
    java ava
  • java中反射机制的使用场景有哪些
    这期内容当中小编将会给大家带来有关java中反射机制的使用场景有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式...
    99+
    2023-06-14
  • 队列技术在PHP与MySQL中的异步任务处理和消息回调机制的应用
    随着互联网的快速发展,用户对于网站和应用的需求也越来越高。为了提高用户体验和应对高并发访问的需求,异步任务处理和消息回调机制成为了开发中不可或缺的一环。本文将介绍如何使用队列技术,在PHP与MySQL中实现异步任务处理和消息回调机制,并提供...
    99+
    2023-10-21
    队列技术 异步任务处理 消息回调机制
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作