mysql锁级别_MySql三种级别锁的介绍及解锁命令

MySql三种级别锁的介绍及解锁命令

(2014-04-29 11:59:37)

标签:

那末

用以

便能

页级的典型代表引擎为BDB。

表级的典型代表引擎为MyISAM,MEMORY和很久之前的ISAM。

行级的典型代表引擎为INNODB。

-我们实践操纵中用的最多的等于行锁。

行级锁的劣面以下:

1)、当很多衔接分袂进行不同的查询时减小LOCK状况。

2)、若是显现极度,可以减少数据的丢掉落。因为一次可以只回滚一行概略几行少量的数据。

行级锁的缺点以下:

1)、比页级锁和表级锁要占用更多的内存。

2)、进行查询时比页级锁和表级锁需求的I/O要多,所以我们经常把行级锁用在写操做而不是读操做。

3)、简单显现死锁。

对付写锁定以下:

1)、若是表出有减锁,那末对其减写锁定。

2)、可则,那末把乞请放进写锁行列中。

对付读锁定以下:

1)、若是表出有减写锁,那末减一个读锁。

2)、可则,那末把乞请放到读锁行列中。

虽然我们可以分袂用low_priority 和high_priority在写和读操做上去改变这些举动。

若是想要在一个表上做大量的 INSERT 和 SELECT

操做,但是并行的插进却不可能时,可以将记实插进来一时表中,然后按期将一时表中的数据更新到实践的表里。可以用以下饬令实现:

mysql> LOCK TABLES real_table WRITE, insert_table WRITE;

mysql> INSERT INTO real_table SELECT * FROM insert_table;

mysql> TRUNCATE TABLE insert_table;

mysql> UNLOCK TABLES;

InnoDB 运用行级锁,BDB 运用页级锁。对付 InnoDB 和 BDB 存储引擎去说,是可以或许产存亡锁的。这是因为

InnoDB 会主动捕捉行锁,BDB 会在实施 SQL 语句时捕捉页锁的,而不是在事务的进手下手便这么做。

行级锁的劣面有:

在很多线程乞请不同记及时减少矛盾锁。

事务回滚时减少改变数据。

使长工夫对伶仃的一行记实减锁成为可以或许。

行级锁的缺点有:

比页级锁和表级锁消费更多的内存。

当在大量表中运用时,比页级锁和表级锁更慢,因为他需求乞请更多的所资源。

当需求频繁对大部分数据做 GROUP BY 操做概略需求频繁扫描全部表时,便明隐的比另外锁更糟。

运用更高层的锁的话,便能更等闲的支持各种不同的类型操纵轨范,因为这种锁的开消比行级锁小多了。

表级锁在下列几种状况下比页级锁和行级锁更劣越:

很多操做皆是读表。

在峻厉条件的索引上读与和更新,当更新概略删除可以用伶仃的索引去读与获得时:

UPDATE tbl_name SET column=value WHERE

unique_key_col=key_value;

DELETE FROM tbl_name WHERE unique_key_col=key_value;

SELECT 和 INSERT 语句并发的实施,但是只有很少的 UPDATE 和 DELETE 语句。

很多的扫描表和对全表的 GROUP BY 操做,但是出有任何写表。

表级锁和行级锁或页级锁之间的不同的地方借在于:

将同时有一个写和多个读的地方做版本(例如在MySQL中的并发插进)。也等于说,数据库/表支持依照进手下手访谒数据工夫面的不同支持各种不同的试图。另外名有:工夫行程,写复造,概略是按需复造。

实施代码以下:

//实施SQL语句 锁掉落踪stat_num表

$sql = "LOCK TABLES stat_num WRITE";

//表的WRITE锁定,阻塞其他所有mysql查询历程

$DatabaseHandler->exeCute($sql);

//实施更新或写进操做

$sql = "UPDATE stat_num SET `correct_num`=`correct_num`+1 WHERE

stat_date="{$cur_date}"";

$DatabaseHandler->exeCute($sql);

//当前乞请的所有写操做做完后,实施解锁sql语句

$sql = "UNLOCK TABLES";

$DatabaseHandler->exeCute($sql);

原文出处:http://www.jb51.net/article/28287.htm

分享:

a4c26d1e5885305701be709a3d33442f.png喜欢

0

a4c26d1e5885305701be709a3d33442f.png赠金笔

加载中,请稍候......

评论加载中,请稍候...

发评论

登录名: 密码: 找回密码 注册记住登录状态

昵   称:

评论并转载此博文

a4c26d1e5885305701be709a3d33442f.png

发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值