我用socket.io开发聊天引擎,Redis&的MySQL。
Redis用于pub / sub并为每个聊天室存储最后100条消息。 Mysql是每个聊天室历史记录的存储。
用户可以创建超过200k的聊天室。
为每个聊天室创建一个InnoDB表来保存快速访问和最佳性能的历史记录是否正确?当然,表应该分布在几个分片上。
答案 0 :(得分:1)
创建表非常昂贵且速度慢。在MySQL上,这会导致磁盘上的文件创建并阻止空间优化。
动态创建表不是通常的做法。我怀疑MySQL会在一个数据库中处理200k表。
您最好在roomId
表中添加message
列。