如果我在Cassandra中爲多個商家存儲產品數據,並且希望能夠爲商家檢索單個產品或所有產品,那麼如何避免該表上的低基數分區鍵?例如,如何避免Cassandra中的低基數分區鍵?
CREATE TABLE products (
merchant_id uuid,
product_id text,
description text,
PRIMARY KEY (merchant_id, product_id)
);
據我瞭解,這樣的作品,但它有問題,如果我有一個小的客商(幾十個說吧)和大量的產品(百萬)時,數據在節點間的分佈不會很好。
的解決方法,我想出了是這樣的:
CREATE TABLE products (
product_id text,
merchant_id uuid,
description text,
PRIMARY KEY (product_id)
);
CREATE INDEX ON products (merchant_id);
在這種情況下,產品ID在前面加上商家ID以使其唯一。這似乎很難。我還擔心二級索引中的查找將返回數百萬個主鍵。
在這裏做什麼是正確的事情?我很早就開始開發,所以如果有必要,我可以對模式進行重大更改,並且我想爲Cassandra做正確的事情。
是的,這是正確的 - 該表的閱讀模式是讀取所有的產品,爲商家(創建飼料)。 – Derecho