聊天记录存储实践
💡
原文中文,约1300字,阅读约需3分钟。
📝
内容提要
公司在游戏中接入微软小冰AI聊天功能,初期使用MySQL存储聊天记录。随着数据量激增,决定限制每位玩家最多保存900条记录,并定期清理。为应对数据增长,计划按注册时间分表存储,并将不活跃玩家的数据迁移至便宜存储。同时,需定期释放MySQL表空间,并独立存储标记聊天记录以便分析。
🎯
关键要点
- 公司在游戏中接入微软小冰AI聊天功能,初期使用MySQL存储聊天记录。
- 聊天记录表中的数据量达到了两千万条,决定限制每位玩家最多保存900条记录。
- 每存储300条记录后就清理一次,以确保数据量控制在一定范围内。
- 根据玩家注册时间进行分表存储,以控制数据量。
- 不活跃玩家的数据迁移至便宜的分布式文件存储,并记录迁移标志。
- MySQL删除操作不会释放表空间,需要手动释放,且需设计释放操作的时机。
- 新增对聊天记录进行标记的操作需求,独立存储以方便统计和分析。
❓
延伸问答
公司为什么选择MySQL存储聊天记录?
公司选择MySQL是因为其价格和性能相对宽容,适合初期不确定的数据量和使用情况。
如何控制聊天记录的数据量?
通过限制每位玩家最多保存900条记录,并每存储300条记录后进行清理。
不活跃玩家的数据如何处理?
不活跃玩家的数据会迁移至便宜的分布式文件存储,并记录迁移标志。
MySQL的删除操作有什么限制?
MySQL的删除操作不会释放表空间,需要手动释放,这个过程会消耗性能并锁定表数据。
公司如何应对聊天记录的快速增长?
公司计划按注册时间分表存储玩家数据,以控制数据量并提高查询效率。
聊天记录标记操作的目的是什么?
标记操作的目的是为了进行定期反馈和AI调教,方便后续的统计和分析。
➡️