我正在为Cassandra 3.0+建模我的桌子.目标是构建一个存储用户活动的表,这是我到目前为止所做的:( userid来自另一个数据库Mysql)
CREATE TABLE activity (
userid int,
type int,
remoteid text,
time timestamp,
imported timestamp,
visibility int,
title text,
description text,
img text,
customfields MAP<text,text>,
PRIMARY KEY (userid, type, remoteid, time, imported))
Run Code Online (Sandbox Code Playgroud)
这是我使用的主要查询:
SELECT * FROM activity WHERE userid = ? AND remoteid = ?;
SELECT * FROM activity WHERE userid = ? AND type = ? AND LIMIT 10;
Run Code Online (Sandbox Code Playgroud)
现在我需要visibility
在第二个查询上添加列.所以,根据我所学到的,我可以在二级索引或物化视图之间进行选择.这是事实:
visibility
列具有低基数(仅3值)并且可以更新,但很少.那我应该选择什么?物化视图或索引?我知道具有低基数的索引是不好的选择,但我的查询总是包括分区键和限制,所以可能不是那么糟糕.
Her*_*gon 11
如果您总是要使用分区键,我建议使用二级索引.
当您不知道分区键时,物化视图会更好
参考文献:
主要文章!
• Cassandra Secondary Index Preview#1
这是与物化视图和二级索引的比较
这里PK已知的地方使用索引更有效
• Cassandra Native Secondary Index Deep Dive
归档时间: |
|
查看次数: |
3096 次 |
最近记录: |