聊天数据库架构:为每个聊天室历史记录创建一个表是否正确?

时间:2014-03-04 13:44:27

标签: mysql database chat database-administration

我用socket.io开发聊天引擎,Redis&的MySQL。

Redis用于pub / sub并为每个聊天室存储最后100条消息。 Mysql是每个聊天室历史记录的存储。

用户可以创建超过200k的聊天室。

为每个聊天室创建一个InnoDB表来保存快速访问和最佳性能的历史记录是否正确?当然,表应该分布在几个分片上。

1 个答案:

答案 0 :(得分:1)

创建表非常昂贵且速度慢。在MySQL上,这会导致磁盘上的文件创建并阻止空间优化。

动态创建表不是通常的做法。我怀疑MySQL会在一个数据库中处理200k表。

您最好在roomId表中添加message列。