在具有MySQL与NoSQL的单个服务器上,Key-Value数据库是否存在高性能差异

前端之家收集整理的这篇文章主要介绍了在具有MySQL与NoSQL的单个服务器上,Key-Value数据库是否存在高性能差异前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

在我的PHP应用程序中,我在一台服务器上的MysqL MyISAM分区表中有一个重达200GB的470M行表.用法包括70%写入/ 30%读取.
我正在努力提高性能.目前的主要问题是由于表级锁定导致的读/写争用.我试图在两个选项之间做出决定:

>将MysqL更改为Innodb.优点:避免表级锁定.缺点:更多的磁盘空间,需要更大的HD,可能没有这些快(目前使用RAID10 6 * 300GB SAS 15k).
>将数据移动到Nosql数据库.主要内容:学习曲线.之前从未使用过Nosql.

问题是,在尝试仍然避免分片数据的同时,并考虑到我使用RDMS MysqL作为简单的键值存储这一事实,两种方法之间的性能之间存在很大差异,还是Nosql的主要优势在于转移到分布式系统?

最佳答案
我只能部分地回答你的问题,但希望不仅仅是评论.

MongoDB通常不是键值存储,并且在用作一个时已知具有某些性能命中.

MongoDb在这里也有一个锁定问题,可能会再次困扰你.它有一个DB级锁定atm,这意味着它可能(需要测试)导致写锁定饱和.

它也专为80%的阅读应用程序而设计(据说这是现在最常见的网站设置),因此您执行的写入越多,您会发现性能随着时间的推移而下降的越多.话虽如此,你可以调整MongoDB以使其更加友好,分布式特性确实有助于阻止写入锁定饱和度.

然而,我个人认为从sql的MongoDB的学习曲线:

>接下来是null
>比sql更自然,更简单地实现到我的应用程序中
>查询语言很简单,很容易掌握
>查询语言与sql有很多相似之处
>驱动程序是标准化的,因此您在控制台中的JS驱动程序文档中看到的语法是一致的.

我对一般事项的个人意见是它的分布式概念.如果您获得了为键值存储设计的Nosql解决方案,那么它可能非常好.谷歌的快速搜索在维基百科上搜索了一小部分Nosql键值存储:http://en.wikipedia.org/wiki/NoSQL#Key-value_stores_on_solid_state_or_rotating_disk

猜你在找的MySQL相关文章