当前位置:七道奇文章资讯数据防范MySQL防范
日期:2011-01-25 22:43:00  来源:本站整理

<b>若何实现MySQL锁的优化</b>[MySQL防范]

赞助商链接



  本文“<b>若何实现MySQL锁的优化</b>[MySQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

以下的文章主要介绍的是MySQL锁的实际优化历程,以下就是MySQL锁的优化的具体筹划的描写,但愿在你此后的学习中会有所帮忙.我们大家都知道当前MySQL已经支持 ISAM, MyISAM, MEMORY (HEAP) 范例表的表级锁了.

BDB 表支持页级锁,InnoDB 表支持行级锁

很多时刻,可以通过经验来猜想什么样的锁对利用程序更符合,不过普通很难说一个MySQL锁比别的更好,这全都要根据利用程序来决意,差别的地方大概需求差别的锁.

锁机制

当前MySQL已经支持 ISAM, MyISAM, MEMORY (HEAP) 范例表的表级锁了,BDB 表支持页级锁,InnoDB 表支持行级锁.很多时刻,可以通过经验来猜想什么样的锁对利用程序更符合,不过普通很难说一个锁比别的更好,这全都要根据利用程序来决意,差别的地方大概需求差别的锁.

想要决意能否需求采取一个支持行级锁的存储引擎,就要看看利用程序都要做什么,此中的查询、更新语句是怎么用的.比方,很多的web利用程序大量的做查询,很少删除,主如果基于索引的更新,只往特定的表中插入记录.采取基本的MySQL MyISAM 表就很符合了.

MySQL中对表级锁的存储引擎来说是释放死锁的.避免死锁可以这样做到:在任何查询之前先恳求锁,并且按照恳求的次序锁表.

MySQL顶用于 WRITE(写) 的表锁的实现机制以下:

假如表没有加锁,那么就加一个写锁.

不然的话,将恳求放到写锁行列中.

MySQL顶用于 READ(读) 的表锁的实现机制以下:

假如表没有加写锁,那么就加一个读MySQL锁.

不然的话,将恳求放到读锁行列中.

当锁释放后,写锁行列中的线程可以用这个锁资源,然后才轮到读锁行列中的线程.

这就是说,假如表里有很多更新操作的话,那么 SELECT 必须等到全部的更新都完成了之后才能开始.

从 MySQL 3.23.33 开始,可以通过状况变量 Table_locks_waited 和 Table_locks_immediate 来解析系统中的锁表争取情形:

  1. mysql> SHOW STATUS LIKE 'Table%';   
  2. +-----------------------+---------+   
  3. | Variable_name | Value |   
  4. +-----------------------+---------+   
  5. | Table_locks_immediate | 1151552 |   
  6. | Table_locks_waited | 15324 |   
  7. +-----------------------+---------+  

在 MySQL 3.23.7(在Windows上是3.23.25)今后,在 MyISAM 表中只要没有冲突的 INSERT 操作,便可以无需利用MySQL锁表安闲地并行履行 INSERT 和 SELECT 语句.

也就是说,可以在别的客户法则在读取 MyISAM 表记录的同不时插入新记录.假如数据文件的中间没有空余的磁盘块的话,就不会发生冲突了,因为这种情形下全部的新记录城市写在数据文件的末尾(当在表的中间做删除大概更新操作时,便大概招致空洞).当空洞被新数据填充后,并行插入特点就会自动重新被启用了.

假如想要在一个表上做大量的 INSERT 和 SELECT 操作,但是并行的插入却不大概时,可以将记录插入到暂时表中,然后按期将暂时表中的数据更新到实际的表里.可以用以下号令实现.   以上是“<b>若何实现MySQL锁的优化</b>[MySQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .