如何改进每分钟更改并需要大量查询的巨大表格的设计?

时间:2015-08-11 18:33:34

标签: database database-design

Schema - person_id, location_id, time_slot, availability

因此,该表告诉我在一天的哪些时段(分为time_slots),该人是否在该特定位置。

因此,如果time_slots被分成10分钟,则1个位置的1个人将有10 * 6 * 24 = 1440行。

另外10个地点也可能有1个人。因此,每个人基本上有1440 * 10 = 14400行。因为,我希望数据库中有10万人,这个问题显然对我来说是不可扩展的(至少在MySQL中)。

数据库在查询方面应该表现良好,比如告诉我X从上午11点到下午5点是否可以出现在位置Y.

除了显而易见的解决方案之外,我无法思考。我想过实现一个段树类型的解决方案,但这看起来非常复杂。此外,创建具有更大时隙的另一个表似乎是一种解决方案。

我认为整个桌面设计必须改变,我正在寻找一些帮助。非常感谢。

1 个答案:

答案 0 :(得分:0)

听起来您的查询是特定于用户的。如果是这种情况,您可以在User上启用对表的分区。这将提高您的查询性能。

刚刚找到类似用例的链接: http://www.chrismoos.com/2010/01/31/mysql-partitioning-tables-with-millions-of-rows