4

我已经阅读了所有这些关于 cassandra 有多快的文章,例如单行读取可能需要大约 5 毫秒。

到目前为止,我不太关心我的网站速度,但随着网站变得越来越大,一些页面开始需要很多查询,例如一页需要读取 5 个不同的表和大约 50 个不同的行,所以我有注意到它需要 0.7 秒到 2.0 秒,这真的很慢,所以我仔细看了一下,发现单个查询大约需要 150 毫秒。

我正在测试的表几乎是空的,所以大小不是问题。我已经安装了APC,但它没有帮助。

我正在使用PHPCassa,thrift 与这个库一起提供。

这些速度正常吗,也许php不够快?我能做些什么来改善这种情况?

请注意,我知道运行这么多查询太多了,cassandra 针对写入而不是读取进行了优化,但在某些情况下,我找不到将数据放入单个表/行的方法。

编辑我刚刚发现了可以提高性能的可选 C 扩展,确实如此,现在单行读取需要 50 毫秒到 100 毫秒,所以这是一个重大改进,你离那 5 毫秒还很远

EDIT2很抱歉没有用更多信息更新我的问题,但我一直很忙,实际上我已经解决了这个问题,现在从 4 个不同的表读取 10 行只需要0.073158 s平均读取时间,0.005575 s所以它比我预期的要多达到。对于那些面临同样问题的人,这些是我建议做的事情:

  • 安装可选的 C 扩展,步骤可以在这里找到
  • 安装APC
  • 确保安装了正确的 java 版本,这可能会导致速度变慢
  • 安装完所有这些东西后,不只是重新启动apache,重新启动整个服务器,一开始我没有这样做,我只是在服务器重新启动后才注意到这个主要的速度提升
4

1 回答 1

1

这仍然不能解释为什么大部分为空的列族的性能比其他列族差。下次你遇到这个问题时,你应该告诉我们你是如何使用这个表的,什么样的查询给你带来了不好的表现。

只是猜测:这个列族是否包含一些经常删除的数据?因为默认情况下,实际删除已删除(墓碑)值需要 10 天的 GcGracePeriod。

因此,如果您对同一键的大量列执行大量写入、读取和删除操作,您可能会遇到一些问题。

于 2013-04-08T18:56:57.280 回答