注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

风轻扬

活着就是为了追求幸福

 
 
 

日志

 
 
关于我

关注互联网应用架构、分布式与海量数据处理技术、云计算、数据库技术

网易考拉推荐

MySQL on SMP: 在前进,但任重而道远  

2009-01-24 18:58:58|  分类: MySQL |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
MySQL一直号称是世界上最快的数据库,但世界进行多核时代后MySQL这一曾经的优势已经失去了,有很多测试都表明在超过4 CPU的机器上,MySQL的可伸缩性已经落后于其在开源领域的主要竞争对手PostgreSQL。

由于MySQL官方对多核的问题响应迟缓,最先出来努力解决MySQL在多核机器上可伸缩性的是一些MySQL的有技术实力的大用户。这里面最其名的是Google与日本人Yasufumi Kinoshita,MySQL Performance Blog的XtraDB项目则把大部分这些改进集成起来,这些改进涉及将buffer全局锁拆分为几个锁更高效的InnoDB读写锁实现、替换页面哈希表互斥锁为读写锁等等。一些测试表明加上这些patch后,MySQL在多核机器上的可伸缩性已经有了很大提高,甚至已经达到接近于线性的理想状态。

然而改善MySQL多核可伸缩性的努力还需不断持续下去。一方面是因为在修正旧的可伸缩性问题的同时,新的问题也在不断的产生,随着MySQL新版本的开发,系统越来越复杂,一个又一个新的锁会被引入到系统中,从而导致新的可伸缩性问题。比如MySQL 5.1中引入plugin机制带来的LOCK_plugin锁,还有为了保护表的元数据不发生变化的LOCK_mdl锁,MySQL 6.0中为实现工作线程池引入的LOCK_event_loop锁等等。另一方面MySQL原有的可伸缩性问题也还有很多,比较MyISAM存储引擎在多核的机器上表现就尤其差,因为它的key cache上就有一把大大的全局锁。HEAP存储引擎也有一把大锁,把malloc/free操作都锁在里面,其结果可想而知。由于Linux上系统的malloc实现本身有一定并发性能问题,语句解析时频繁调用malloc也导致其性能下降,替换成tcmalloc性能改善竟然有一倍之多

这两年来社区已经为MySQL性能作为了不少的努力,只不过官方对此方面一直无力令人不免叹息。我觉得MySQL目前正在经历有史以来最艰难的时刻,不过相信还是会熬过的。
  评论这张
 
阅读(1515)| 评论(3)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017