本月初,甲骨文公司发布了正式版的MySQL 5.6数据库(参考:甲骨文发布最新MySQL 5.6版 ),其中增加了一些NoSQL特性,即通过Memcached API对InnoDB的灵活NoSQL访问,提供了InnoDB数据的简单、关键值查找。然而在一些业内人士看来,MySQL 5.6的NoSQL功能却形如“鸡肋”。
大数据创业公司DataStax的技术总监Jonathan Ellis近期就在博客中对MySQL 5.6的NoSQL功能进行了“深度”的吐槽,他认为甲骨文还没有摸到NoSQL的门呢。以下就是Jonathan Ellis的几个观点:
1. 扩展性
普遍的观点认为NoSQL的一个主要优势就是横向扩展(Scale Out),这也是许多公司从MySQL转向NoSQL(Cassandra)数据库的一个重要原因。而随着MongoDB的崛起,越来越多的公司也开始从MySQL转向MongoDB阵营。
Cassandra能够简单透明地在多个机器上进行扩展,它们可以是廉价的硬件组成的集群,而无需购买昂贵的服务器或者SAN存储。但同样重要的是,透明地按需扩展和缩减集群的能力,使得公司能够更好地利用云的灵活性,针对小型工作负载可以添加合适的计算能力。这一点MySQL 5.6是做不到的。
2. 持续可用性
Cassandra的普及率在不断的升高,其中一个原因就是扩多数据中心组成单一集群的能力。可协调的一致性使得Cassandra能够在数据中心内部进行同步复制,同时异步复制到其他数据中心。
另一方面,基于主机的复制由于限制往往会造成较大的延迟,即便多主复制在关系型数据库方面也无法解决这一问题,因为两步提交机制也需要多个round-trip。
而通过多数据中心的无主复制,Cassandra能够对整个数据中心进行无缝的故障转移,并在电力或连接修复之后对未同步的机器进行修复。
3. 灵活性
NoSQL另外一个流行的原因,就是让设计原型更加灵活,特别是面向文档型的数据库,如MongoDB。添加JSON的支持是非常有用的,就像PostgreSQL最新的更新一样。
但是MySQL的memcached层只提供了一个键值(key/value)API,在表达性方面存在巨大缺陷与限制。
4. 性能
基于B-tree的存储引擎(InnoDB和MyISAM)事实上并不适合传统磁盘和SSD,因为有很多小的随机写入操作。但为何关系型数据库又是如此强势呢,主要还是因为SQL语义。比如, INSERT或UPDATE需要首先进行一个行的读取以确保它是否存在。
这也是为什么MySQL数据库的写性能在数据集增长的时候会随之下降的原因。即使是针对相对合适的数据集,在混合的工作负载之下,这一结果也会逐渐显现。
5. 查询语言
在NoSQL世界中,相对不太重要的就是查询语言,但甲骨文还是非常重视这一点,这也是没办法的事。比较讽刺的是,Cassandra现在也开始越来越多地转向SQL语言,以改进分布式架构中的性能。而像 batch_mutate 和 get_slice_range这样的复杂API已经被Cassandra抛弃。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
MongoDB与Cassandra数据库对比
MongoDB和Cassandra都属于NoSQL数据库系列,它们也恰好都是开源,但是,它们的相似之处仅此而已 […]
-
NoSQL性能管理仍不完备 你该如何应对?
NoSQL技术现在仍然处于相对初级的阶段,众多NoSQL软件类型和产品服务令人眼花缭乱,选择合适的性能管理方案也成为一件颇具挑战性的事。
-
NoSQL——未来数据库家族的一员
NoSQL是对数据库由内而外的全方位改造,从而创造出一个高容量、高速度和高可变性的架构。然而,NoSQL供应商在可变性部分却正在遭遇失败。
-
GPU技术仅局限于游戏领域?当心大数据应用的小船说翻就翻
GPU技术的使用是一些机器学习应用的前沿和核心。Facebook,百度、亚马逊和其他一些公司正在使用的GPU集群来研究深层神经网络相关的机器学习应用程序。