选择性加入cassandra比正常更快?

时间:2011-05-06 17:08:19

标签: php database nosql cassandra phpcassa

我想知道是否:

$column_family->get('row_key', $columns=array('name1', 'name2'));

然后我现在使用的灵活性越快越好:

$column_family->get('row_key');

方法1当然难以实现,但它会减少负载/带宽/延迟吗?

2 个答案:

答案 0 :(得分:3)

Cassandra不是mysql,因此有些事情会有所不同并不奇怪。 :)

在这种情况下,Cassandra的稀疏行存储模型意味着对于列数,整行版本将更快,因为Cassandra不需要反序列化并检查其行级列条目。

当然,对于更多数量的列,反序列化超出您需要的额外工作将再次占据主导地位。

底线:担心这几乎肯定是过早的优化。如果不是,请测试。

答案 1 :(得分:2)

第一个更快,特别是如果您使用包含大量列的大型表。

即使你只有两个名为name1name2的列,指定它们的名称应该避免从MySQL端的表结构中提取列名。所以它应该比使用*选择器更快。

但是,使用PHP中的 microtime() 对大表测试结果,你会看到我在说什么。当然,如果您在表格中有20多列,并且想要提取它们,那么放置*比列出所有这些列名更容易,但就速度而言,列出列的速度要快一些。

查看此结论的最佳方法是自行测试。