聊天记录存储实践

💡 原文中文,约1300字,阅读约需3分钟。
📝

内容提要

公司在游戏中接入微软小冰AI聊天功能,初期使用MySQL存储聊天记录。随着数据量激增,决定限制每位玩家最多保存900条记录,并定期清理。为应对数据增长,计划按注册时间分表存储,并将不活跃玩家的数据迁移至便宜存储。同时,需定期释放MySQL表空间,并独立存储标记聊天记录以便分析。

🎯

关键要点

  • 公司在游戏中接入微软小冰AI聊天功能,初期使用MySQL存储聊天记录。
  • 聊天记录表中的数据量达到了两千万条,决定限制每位玩家最多保存900条记录。
  • 每存储300条记录后就清理一次,以确保数据量控制在一定范围内。
  • 根据玩家注册时间进行分表存储,以控制数据量。
  • 不活跃玩家的数据迁移至便宜的分布式文件存储,并记录迁移标志。
  • MySQL删除操作不会释放表空间,需要手动释放,且需设计释放操作的时机。
  • 新增对聊天记录进行标记的操作需求,独立存储以方便统计和分析。

延伸问答

公司为什么选择MySQL存储聊天记录?

公司选择MySQL是因为其价格和性能相对宽容,适合初期不确定的数据量和使用情况。

如何控制聊天记录的数据量?

通过限制每位玩家最多保存900条记录,并每存储300条记录后进行清理。

不活跃玩家的数据如何处理?

不活跃玩家的数据会迁移至便宜的分布式文件存储,并记录迁移标志。

MySQL的删除操作有什么限制?

MySQL的删除操作不会释放表空间,需要手动释放,这个过程会消耗性能并锁定表数据。

公司如何应对聊天记录的快速增长?

公司计划按注册时间分表存储玩家数据,以控制数据量并提高查询效率。

聊天记录标记操作的目的是什么?

标记操作的目的是为了进行定期反馈和AI调教,方便后续的统计和分析。

➡️

继续阅读