卡桑德拉多排选择

时间:2012-12-29 16:34:13

标签: cassandra phpcassa

在某些地方我听说在cassandra中使用多行选择是不好的,因为对于每个行选择它运行新的查询,所以例如,如果我想一次获取1000行,它将与一次运行1000个单独的查询相同那是真的吗?

如果在每次加载页面时继续选择大约50行是多么糟糕,如果说我在一分钟内有1000页的页面浏览量,那么它会严重减慢cassandra的速度吗?

P.S我正在使用PHPCassa作为我的项目

3 个答案:

答案 0 :(得分:3)

是的,运行1000行的查询与运行1000个查询相同(如果使用推荐的RandomPartitioner)。但是,我不会过分担心这一点。在Cassandra中,按键查询行是一种非常常见的非常快速的操作。

至于你的第二个问题,很难提前告知。构建并测试它。请注意,Cassandra确实在内存缓存中使用,因此如果您要查询相同的行,那么它们将缓存。

答案 1 :(得分:1)

我们正在使用Playorm for Cassandra,并且有一个" findAll"那里的模式提供了快速获取所有行的支持。访问 https://github.com/deanhiller/playorm/wiki/Support-for-retrieving-many-entities-in-parallel了解更多详情。

答案 2 :(得分:1)

1)我对Cassandra代码库进行了一些调试,根据我的观察,同时查询多行cassandra提供了multiget()功能,该功能也在phpcassa中继承。

2)Multiget被优化以处理批量请求并且它节省了你的网络跳跃。(例如1k行将有1k往返,所以它肯定减少了999次往返的时间)

3)关于phpcassa中的multiget()的更多信息:php cassa multiget()