【问题标题】:percona nosql vs other nosqlpercona nosql 与其他 nosql
【发布时间】:2011-09-19 20:54:57
【问题描述】:

我正在评估用于存储键/值对(用于应用程序的一部分)的 nosql 存储,并且遇到了在 mysql 世界中提供本机键/值的 percona。这似乎是一个很好的解决方案,因为它允许存储保留在一个地方(因为其余功能存在于 mysql 中并将继续保持原样)。与 cassandra 等其他键/值存储相比,还有其他优势吗?有什么缺点?

【问题讨论】:

    标签: mysql nosql percona


    【解决方案1】:

    您指的是 HandlerSocket 接口,它绕过 SQL 查询层并允许您通过主键在单个 InnoDB 表中获取和存储行。这个想法是避免 SQL 的开销允许应用程序运行更高的 QPS 率。

    HandlerSocket 很有希望,但到目前为止我们发现(我为 Percona 工作)是瓶颈在于仓促编写的客户端接口。也就是说,在当前实现状态下,PHP、Ruby 等的客户端 API 的开销如此之大,以至于 HandlerSocket 并不比为 INSERT 和 SELECT 编写简单的 SQL 语句快。 InnoDB 已经针对主键访问进行了优化,因为表实际上是按主键存储为聚集索引。

    为 HandlerSocket 客户端库编写优化代码的未来开发应该会随着时间的推移改进这一点。如果您想帮助这个过程,请参与开源项目以开发这些客户端库。

    HandlerSocket 的另一个缺点是 AFAIK,它不支持值的就地递增,这是一些其他键/值存储提供的优化。使用 HandlerSocket,您必须获取值、读取它、递增它,然后将其发送回数据库。这引入了竞争条件,因此您必须以某种方式锁定行。

    【讨论】:

      猜你喜欢
      • 2011-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-29
      • 2018-06-10
      相关资源
      最近更新 更多