网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > 数据库技术 > Oracle > 性能调优 > MySQL数据库优化(八)-性能调优  

MySQL数据库优化(八)-性能调优

2008-06-14  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

     1 锁机制

  当前MySQL已经支持 ISAM, MyISAM, MEMORY (HEAP) 类型表的表级锁了,BDB 表支持页级锁,InnoDB 表支持行级锁。很多时候,可以通过经验来猜测什么样的锁对应用程序更合适,不过通常很难说一个锁比别的更好,这全都要依据应用程序来决定,不同的地方可能需要不同的锁。

网管联盟bitsCN_com

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

中国网管联盟bitsCN.com

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

  MySQL中用于 WRITE(写) 的表锁的实现机制如下: 网管朋友网www_bitscn_net

  •   如果表没有加锁,那么就加一个写锁。
  •   否则的话,将请求放到写锁队列中。

  MySQL中用于 READ(读) 的表锁的实现机制如下: 网管网www.bitscn.com

  •   如果表没有加写锁,那么就加一个读锁。
  •   否则的话,将请求放到读锁队列中。

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

网管下载dl.bitscn.com

  这就是说,如果表里有很多更新操作的话,那么 SELECT 必须等到所有的更新都完成了之后才能开始。 网管u家u.bitsCN.com

  从 MySQL 3.23.33 开始,可以通过状态变量 Table_locks_waited 和 Table_locks_immediate 来分析系统中的锁表争夺情况: 网管有家www.bitscn.net


  mysql> SHOW STATUS LIKE 'Table%';
  +-----------------------+---------+
  | Variable_name | Value |
  +-----------------------+---------+
  | Table_locks_immediate | 1151552 |
  | Table_locks_waited | 15324 |
  +-----------------------+---------+
网管u家bitscn.net

  在 MySQL 3.23.7(在Windows上是3.23.25)以后,在 MyISAM 表中只要没有冲突的 INSERT 操作,就可以无需使用锁表自由地并行执行 INSERT 和 SELECT 语句。也就是说,可以在其它客户端正在读取 MyISAM 表记录的同时时插入新记录。如果数据文件的中间没有空余的磁盘块的话,就不会发生冲突了,因为这种情况下所有的新记录都会写在数据文件的末尾(当在表的中间做删除或者更新操作时,就可能导致空洞)。当空洞被新数据填充后,并行插入特性就会自动重新被启用了。 网管u家www.bitscn.net

  如果想要在一个表上做大量的 INSERT 和 SELECT 操作,但是并行的插入却不可能时,可以将记录插入到临时表中,然后定期将临时表中的数据更新到实际的表里。可以用以下命令实现: 网管下载dl.bitscn.com

网管u家u.bitscn@com

TAGs   性能   优化   数据库   SELECT   操作       更新   一个   可以      
 上一篇:MySQL数据库优化(七)-性能调优   下一篇:MySQL数据库优化(九)-性能调优
MySQL数据库优化(八)-性能调优 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: