当有多个参考键时并置数据

Collocating Data when having more than one Reference Key

如果我有多个引用键,我想了解如何在 Ignite 中配置数据。

在下面提供了一个示例 MySQL table 结构。

CREATE TABLE users(
    user_id INTEGER,
    user_name VARCHAR(250),
    age INTEGER,
    CONSTRAINT pk_user PRIMARY KEY (user_id)
);

CREATE TABLE movies(
    movie_id INTEGER,
    movie_name VARCHAR(250),
    genre VARCHAR(250),
    CONSTRAINT pk_movie PRIMARY KEY (movie_id)
);

CREATE TABLE ratings(   
    user_id INTEGER,
    movie_id INTEGER,
    rating FLOAT,
    timestamp TIMESTAMP,
    CONSTRAINT pk_rating PRIMARY KEY (user_id, movie_id)
);

这里我有 "ratings" table,它参考了用户 table 的 "user_id" 和电影 table 的 "movie_id"。

如何在这种情况下正确配置数据。

我应该尝试在 "ratings" 数据存在的地方并置用户和电影吗?有可能吗?

你不能两者兼得。最佳做法是针对常见场景进行优化。例如,如果您 80% 的查询都加入了电影和评级,则您将它们并置。涉及用户的查询仍然有效,他们只是访问了网络。

根据电影(或用户)的数量,您还可以考虑复制缓存而不是分区。