一个大表还是多个小表?

ukxgm1gy  于 2021-06-15  发布在  Mysql
关注(0)|答案(2)|浏览(282)

关闭。这个问题是基于意见的。它目前不接受答案。
**想改进这个问题吗?**更新这个问题,这样就可以通过编辑这篇文章用事实和引文来回答。

两年前关门了。
改进这个问题
我想知道哪种方法在创建数据库时更好(例如用于消息传递应用程序)。假设有一个包含所有消息的表。最好是:
有一个大表来存放所有的消息或
一个表用于最近发送的消息,另一个表用于所有发送的消息,例如,1个月前。
我的想法是,最好使用第二个选项,因为在较小的数据库中搜索最常见的查询会更快,而不是在一个包含所有已发送消息的巨大表中搜索。我试图查找大型数据库的最佳实践,但没有找到任何能回答这个问题的方法。

b4lqfgs4

b4lqfgs41#

所有消息都有一个表是好的,因为在多表格式中会有冗余。

pgx2nnw8

pgx2nnw82#

一个表用于所有消息。在大多数情况下,将单个实体拆分为多个表是没有充分理由的(在某些特定情况下,这可能是一个好主意)。关系数据库设计用于处理大型表,而不是处理大量表。
如果性能有问题,请了解索引和表分区。
以下是您不需要多个表的一些原因:
随着时间的推移,维护表(添加列、碎片整理、添加索引)是一件非常痛苦的事情。
构造查询以查看所有数据是一个真正的难题。
部分填充的数据页可能会占用大量磁盘和内存。
与使用分区相比,备份和恢复是痛苦的。
安全和权限是痛苦的。
在一个数据库中有多个表几乎没有什么原因。一个原因可能是为了满足安全要求。通常,应用程序是使用自己的数据库和表的副本构建的。这是应用程序设计的一部分。

相关问题