为了预先提出这个问题,我应该说我对数据库效率知之甚少,很快就会显而易见。
这是一个相当简单的问题:
我想存储mysql数据库中的事件。 我已经想到了两种可能的方法(还有更多,我确定):
attendance
表格中创建一个额外的events
行,其中包含逗号分隔的用户ID列表attendance
表,其中包含两列event_id
和user_id
我的直觉说方法2效率最高 - 虽然必须返回和遍历多行,但这可能比在连续字符串中搜索特定user_id
成本更低...... / p>
有人可以证实吗?
答案 0 :(得分:3)
创建一个新表!
否则你没有利用MySQL的关系方面,你运行的每个查询都必须解析csv条目的结果(可能效率低下)
答案 1 :(得分:1)
第二种选择更好。使用逗号分隔的字符串进行搜索非常耗时。
但是,在第二个选项中,请确保event_id
和user_id
为FOREIGN KEYS
。
这将INDEX
列,您将获得更好的搜索结果。