我想在我的游戏服务器上使用 MySQL 向多个用户发送消息。 在此过程中,多个重复的字符串(MediumText,100~500个字符)数据将保存在同一列中。
预计有 10 万用户收到邮件。
示例(CSV 格式):
ID,Item,Content,(SentDate,Expdate)
123148223598230,"{Crystal:100}","Sorry for the inconvenience...blahblah"
133124124515435,"{Crystal:100}","Sorry for the inconvenience...blahblah"
348209385093285,"{Crystal:100}","Sorry for the inconvenience...blahblah"
209580293509233,"{Crystal:100}","Sorry for the inconvenience...blahblah"
...
1.. 问题是,MySQL 是否足够聪明,能够检测到这些重复值并“有效”存储数据,仅存储一次重复值?
2.a。如果是这样,我该如何让 MySQL 完成这个任务?(或者,它会自动完成这个任务吗?)
2.b.如果没有,您会推荐什么突破?
文本值的新表?或者只是将数据存储在数据库上?
最佳答案
MySQL 不会自动检测您的注释栏中是否有重复的文本。如果您预计评论之间会有大量重复,您可以尝试通过创建一个仅包含评论的新表来标准化数据。然后,在当前表中,将注释替换为指向此新表的外键。
MySQL 的 ENUM
类型也可能在这里需要考虑,但如果有许多独特的注释,使用真正的单独表可能会更干净。
关于MySQL重复大文本保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48220211/