数据库设计 - 一个表中有数十亿条记录?

cor*_*ore 8 database

假设您正在创建一个数据库来存储聊天室应用程序的消息.有无限数量的聊天室(它们是在运行时按需创建的),所有消息都需要存储在数据库中.

创建一个巨大的表来存储所有聊天室的消息是不是错了,知道最终可能在那一个表中有数十亿条记录?

为每个创建的房间动态创建一个表并将该房间的消息仅存储在该表中是否更为谨慎?

Rex*_*x M 8

有一张桌子是合适的.当您有n个按应用程序使用量增长的表时,您将描述使用数据库本身作为表的表,这不是RDBMS的工作方式.在现代数据库中,单个表中的数十亿条记录是微不足道的.在这个级别,您唯一的性能问题是良好的索引以及如何进行连接.

  • 要添加到此答案...您还可以基于某个维度联合表.所以机械地,它看起来像执行单独的表,但是使用索引无缝地绑定在一起.同样,需要来自OP的更多信息. (2认同)

dev*_*vio 8

数十亿的记录?

假设您每分钟有1000个活跃用户,每分钟有1条消息,这会导致每天发送1.5十亿条消息,每年发送大约500条消息.

如果你仍然需要存储几年的聊天消息(用于什么?),你可以将它们存档到基于年份的表中.

我肯定会反对动态创建基于房间的表格.

  • 对不起,伙计们,但不要这么认真.这不是实际情况,但前提是相同的.假设有数十亿条记录,无论您想象的情况如何. (3认同)