我有包含数百万条记录(行)的表格。 而在这个表中,表中有一列叫做mail_to。 每条记录对应一个邮件列表,然后邮件列表的信息存储在mail_to这一列中。 在我系统的当前实现中,我将邮件列表存储为逗号分隔的邮件 ID 列表。
例如 考虑一个表,订阅数据
| Column A | Column B |........ | mail_to |
| Record 1 | abc | | xyz@gmail.com,abc@gmail.com |
如果我想检索对应于记录的邮件列表,当前的实现工作正常。但是如果要查找abc@gmail.com对应的记录,查询速度太慢。
我能想到的一种方式是
在订阅数据中存储 A 列到 N 列 然后在单独的表中显示邮件 ID,比如 User Email Data 第三个表存储连接信息。
但是,我不确定它是否会给我任何改进,因为每次我查询时都会有 2 个连接。
任何人都可以建议一种更好的方法来存储此邮件列表/帮助我评估两者中哪个更好。任何帮助将不胜感激。
谢谢
最佳答案
虽然这违反了 3NF,但您可以存储这两种变体。但如果您追求速度 - 一些非规范化可能会有所帮助。
您可以使用旧的串联邮件列表进行某些处理,并使用新的多表模式进行快速搜索。
关于mysql - 在数据库/MySQL 中存储邮件列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9108062/