`
ldb2741
  • 浏览: 31899 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

MySQL 的表级锁

阅读更多

在开发项目时,遇到一个问题,就是要随机读取一张表的部分记录,并update设置为不可在读,这里就有一个问题,可能多个人同时随机到相同的记录,并重复做update操作,引起数据脏读和重复操作,

因此考虑给表加锁。但是采用了MyISAM,不支持事务,只能加表级锁,而且别人连读的权限都没有。下面是2个测试文件,在firefox运行test.php,在ie里运行test1.php,会发现,火狐运行后10秒内,ie里处于等待状态,其实就是test.php里给表加了锁,网页没运行结束,锁未被释放,当10秒过后,锁自动被释放,ie里马上出现内容了,这样做实现了随机读取表的记录并修改,但是带来的缺憾是锁表期间,其他进程对该表的读的权限也没有,也就是用户在操作表记录时,管理员都没有读的权限,还是得修改表引擎,换成innodb,用事务来解决。

test1.php

 

$db=new db();
$db->locktable("LOCK TABLES sbs_temp WRITE");
$sql="select * from sbs_temp limit 5";
$rs=$db->getRs($sql);
foreach($rs as $row) {
echo $row['query']."<br>";
}

 

test.php

$db=new db();
$db->locktable("LOCK TABLES sbs_temp WRITE");
$sql="select * from sbs_temp limit 5";
$rs=$db->getRs($sql);
foreach($rs as $row) {
echo $row['query']."<br>";
}
sleep(10);

分享到:
评论

相关推荐

    值得学习的MySQL行级锁、表级锁、页级锁详细介绍

    值得学习的MySQL行级锁、表级锁、页级锁详细介绍

    MySQL中的行级锁、表级锁、页级锁

    主要介绍了MySQL中的行级锁、表级锁、页级锁,以及分享了多种避免死锁的方法,感兴趣的小伙伴们可以参考一下

    MySQL锁的用法之表级锁

    MySQL的锁分为表级锁、页级锁与行级锁。表级锁是MySQL中粒度大的一种锁,它实现简单,资源消耗较少,被大部分MySQL引擎支持。常使用的MYISAM与INNODB都支持表级锁定。  表级锁定分为两类,读锁与写锁。读锁是预期...

    MYSQL 解锁与锁表介绍

    比如,MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用的是页面锁(page-level locking),但也支持表级锁;InnoDB存储引擎既支持行级锁(row-level locking),也支持表级锁,但...

    MySQL高级 锁机制

    该文档详细介绍了MySQL的锁机制,个人认为比较容易理解,总体都是个人记录,包括截图。

    MySQL行级锁、表级锁、页级锁详细介绍

    主要介绍了MySQL行级锁、表级锁、页级锁详细介绍,同时列举了一些实例说明,需要的朋友可以参考下

    2021年MySQL高级教程视频.rar

    17.MySQL高级锁MyISAM表锁查看锁争用情况.avi 18.MySQL高级锁InnoDB行锁介绍及背景知识.avi 18.MySQL高级锁InnoDB行锁类型.avi 19.MySQL高级锁InnoDB行锁基本演示.avi 20.MySQL高级锁InnoDB行锁行锁升级为表锁.avi ...

    尚硅谷Java视频教程_MySQL高级视频

    尚硅谷_MySQL高级_小表驱动大表 · 47.尚硅谷_MySQL高级_in和exist · 48.尚硅谷_MySQL高级_为排序使用索引OrderBy优化 · 49.尚硅谷_MySQL高级_慢查询日志 · 50.尚硅谷_MySQL高级_批量插入数据脚本 · 51....

    Mysql高级:锁

    主要二个主题:锁机制和全局机制 锁机制:概述,三锁:表锁和行锁,页锁

    新版 MySQL DBA 高级视频 基于MySQL 5.7 MySQL 8.0版本.rar

    │ 第十一课MySQL表分区8.0.pdf │ 第十七课Elasticsearch分享-张亚V4.pdf │ 第十三课MySQL5.7高可用架构之Mycat.pdf │ 第十三课MySQL8.0高可用架构之Mycat.pdf │ 第十九课MySQL备份和恢复.pdf │ 第十二课MySQL...

    轻松玩转MySQL之锁篇

    MySQL表级锁 表级锁由MySQL Layer层实现 MySQL 实现的表级锁定的争用状态变量 show status like 'table%'; table_locks_immediate:产生表级锁定的次数; table_locks_waited:出现表级锁定争用而发生等待的次数; ...

    mysql高级视频教程百度云(2019).txt

    46.MySQL高级_小表驱动大表.avi 45.MySQL高级_索引优化答疑补充和总结口诀.avi 44.MySQL高级_索引面试题分析.avi 43.MySQL高级_索引优化10.avi 42.MySQL高级_索引优化9.avi 41.MySQL高级_索引优化8.avi ...

    MySQL中的行级锁,表级锁,页级锁1

    1、如果不同程序会并发存取多个表,尽量约定以相同的顺序访问表,可 2、在同一个事务中,尽可能做到一次锁定所需要的所有资源,减少死锁 3、对于非常容易产生死锁的业

    mysql锁表和解锁语句分享

    页级的典型代表引擎为BDB。...2)、进行查询时比页级锁和表级锁需要的I/O要多,所以我们经常把行级锁用在写操作而不是读操作。 3)、容易出现死锁。 对于写锁定如下: 1)、如果表没有加锁,那么对其加写锁定。

    MySQL的锁机制简介

    这篇文章主要是对MySQL的三级锁及其应用场景进行简要介绍。  页级:引擎 BDB。  表级:引擎 MyISAM , 理解为锁住整个表,可以同时读,写不行  行级:引擎 INNODB , 单独的一行记录加锁  表级,直接锁定整张表...

    2018最新Mysql高级视频教程

    MySQL是目前流行的关系型数据库管理系统,在WEB...索引的优化策略,了解innodb和myisam存储引擎,熟悉MySQL锁机制,能熟练配置MySQL主从复制,熟练掌握explain、show profile、慢查询日志等日常SQL诊断和性能分析策略。

    mysql中的事务、锁讲解和操作

    而对于MySQL中的锁,我们将会介绍基础锁和高级锁的分类、锁的应用场景、锁的竞争和冲突问题、锁的常见应用案例、以及针对锁的调优方法等几个重要话题。我们会具体探讨到排它锁和共享锁的定义、意义和实现;介绍到锁...

Global site tag (gtag.js) - Google Analytics