我的mySQL数据库中有10k用户,我需要存储最近500个事件的每个用户。
请告诉我,我应该如何设计我的数据库?每个用户都有一个MegaEventsTable或专用表?
许多小桌子的优点:
- 我可以从500个条目中快速选择50个类型的事件,而不是从500 * 10k个条目中选择
- 它更快获得前500个条目,并杀死该用户的表中的所有其他条目
- 我可以在将来的某个时间对我的条目数据库进行分片
反政府:
- 我觉得10k表是可怕的想法(如果有100K会怎样)
答案 0 :(得分:4)
几乎不存在每个用户应该有一个表的情况。原因很多。以下是一些:
userId
用作外键引用,因为它引用了多个表。Users
表的结构。你必须改变数千个。