写这一篇内容的原因是MySQL562突然推出了memcached的功能.docxVIP

  • 1
  • 0
  • 约2.45千字
  • 约 5页
  • 2016-11-24 发布于重庆
  • 举报

写这一篇内容的原因是MySQL562突然推出了memcached的功能.docx

写这一篇内容的原因是MySQL562突然推出了memcached的功能

 HYPERLINK /cn/news/2011/05/nosql-mysql MySQL与NoSQL——SQL与NoSQL的融合 写这一篇内容的原因是MySQL5.6.2突然推出了memcached的功能。 HYPERLINK /wp/2011/04/nosql-to-innodb-with-memcache NoSQL to InnoDB with Memcached的出现,可以看出NoSQL对关系数据库的确产生了巨大的影响,个人觉得这是一个非常大的进步,可以让开发人员更加方便的使用NoSQL和关系数据库。NoSQL一般被认为性能高于关系数据库,那么直接在InnoDB之上提供NoSQL功能并和MySQL共存是否是一个更好的选择呢? MySQL with HandlerSocket 去年在twitter上看到 HYPERLINK /ahiguti/HandlerSocket-Plugin-for-MySQL HandlerSocket的出现,并宣称性能是Memcached的两倍时,非常令人吃惊,居然可以达到750000qps。接着HandlerSocket成为NoSQL领域谈论的焦点之一, 大量的人开始想要尝试,并做过一些自己的性能测试。 下图是HandlerSocket的结构图: 图1 HandlerSocket结构图(来源于官方) HandlerSocket的出现,给我们眼前一亮的感觉。原来InnoDB的性能已经足够好,并可以直接提供NoSQL的功能。最大的好处就是可以共享MySQL的功能,DBA以前的经验一样可以用。但是有些小小的风险: HandlerSocket没有与MySQL一起发布版本,因此对于使用MyISAM引擎的用户是无缘的。不过现在Percona-Server已经集成了HandlerSocket,可以非常方便的使用。 目前大规模的成功案例并不多,国内也只有少部分公司在尝试,我知道的有飞信开放平台,据说还不错。 官方给出的测试数据在应用场景上其实并不充分,至少测试的场景跟我们实际使用的场景相差很大。但是毫无疑问, HandlerSocket的性能比直接使用MySQL肯定要高效得多。 InnoDB with Memcached 也许是因为HandlerSocket的火爆的冲击,也许是受HandlerSocket的启发,MySQL开始关注NoSQL领域的应用,并在MySQL5.6.2版本增加了通过Memcached协议直接访问原生Innodb API的功能。 InnoDB with Memcached是在提供MySQL服务的同一进程中提供Memcached服务 ,这与HandlerSocket的架构模式几乎是一样的。虽然目前InnoDB with Memcached还是预览版本,但是我个人更看好它,因为: 它使用Memcached协议,并同时支持文本和二进制协议,在client的选择和成熟度上就要胜出许多; 其支持的三种cache模式,不但可以省去开发中使用Memcached来缓存数据的麻烦,并且具有更好的可靠性和数据一致性; 在应用程序中,可以使用高效的memcached协议来操作数据,同时也可以使用sql进行复杂的查询操作; 注意:目前通过memcached的更新操作不会记录到binlog中,未来的版本会支持。 图二 InnoDB with Memcached Memcached and MySQL Cluster 显而易见,我们会想到MySQL Cluster结合Memcached是一个更好的组合,MySQL Cluster提供了99.999%高可用性,并真正提供了去中心化的无缝高可扩展性。还有什么比这更人兴奋的呢。 MySQL已经提供了这样的功能,源代码在 HYPERLINK /%7Emysql/mysql-server/mysql-cluster-7.2-labs-memcached 这里。这里有一个OReilly MySql Conference大会的 HYPERLINK /jdduncan/the-native-ndb-engine-for-memcached PPT演示 ,你也可以看下这个功能开发者的 HYPERLINK /index.php?/archives/14-MySQL-Cluster-and-Memcached-Together-at-Last.html 一篇博客。 图三 NDB with Memcached MySQL Cluster虽然具有高可靠性和无缝扩展的优势,但是对于复杂SQL查询的效率却不能令人满意。不过对于仅仅依赖于key-value查询和写入的??量数据存储需求,MySQL Cluster with Memcached

文档评论(0)

1亿VIP精品文档

相关文档