【发布时间】:2018-03-17 05:47:05
【问题描述】:
在 RDBMS 中,通常建议根据供应商选择特定的列,但是 Cassandra 呢?
从表中选择 *; 对比 从表中选择名称;
请记住,您可能有 50 列(仅作为示例)。
【问题讨论】:
在 RDBMS 中,通常建议根据供应商选择特定的列,但是 Cassandra 呢?
从表中选择 *; 对比 从表中选择名称;
请记住,您可能有 50 列(仅作为示例)。
【问题讨论】:
在某些情况下它可以提供一点帮助,但在大多数情况下它只是一个很小的改进。我建议您使用基准测试您的案例。
仅仅select * 与 Cassandra 并没有什么大不了的。如果您不将所有内容传输到客户端,这将意味着更少的序列化/反序列化。尤其是在您拥有大量列(例如 50 个)的情况下。数据的布局方式可能会读取所有列以从磁盘中提取行。与调整分区大小、最小化墓碑、系统/堆设置或正确使用压缩策略等内容相比,它的优化更小。
【讨论】:
its likely gonna read all of columns anyway to pull the row from disk 吗?你能提供一些参考来支持吗?我确信 SSTable 是按键和列索引的,并且希望对特定列的查询只会从磁盘中获取这些列。对不对?