多租户共享环境中表的水平分区

时间:2018-04-30 15:16:38

标签: database relational-database multi-tenant partitioning

我有一个数据库,我需要存储来自不同用户(即租户)的数据(例如资源)。

这些资源可以在多个用户之间共享。

因此,我有一个Users表,一个Resources表和一个多对多表UserResources。

TABLE Users (GUID userId, String username);

TABLE Resources (GUID resourceId, String resourcePath, DateTime createdAt, DateTime updatedAt, int property1, ...);

TABLE UserResources (GUID userId, GUID resourceId);

“UserResources”表的水平分区最有效的策略是什么?

我应该将哪些列用作UserResources中的分区列,以获得最佳的查询效果(就执行时间而言)?

谢谢大家!

cghersi

1 个答案:

答案 0 :(得分:0)

分区多对多表是没有意义的。你不太可能获得任何表现。事实上,表现可能会受到影响。

我对多对多表(对于MySQL)的提示:http://mysql.rjweb.org/doc.php/index_cookbook_mysql#many_to_many_mapping_table