我在考虑,对于我站点内的用户消息传递模块,以下两种查询类型中的哪一种可以提供最快的性能:
我想到的第一个是多表设置,它有一个连接表和一个主表。连接表保存帐户和消息传递表之间的连接。
在这种情况下,查询如下所示,以获取作者的一些数据以及他发送的消息:
SELECT m.*, a.username
FROM messages AS m
LEFT JOIN connection_table
ON (message_id = m.id)
LEFT JOIN accounts AS a
ON (account_id = a.id)
WHERE m.id = '32341'
插入其中有点“复杂”。
我的另一个想法,在我看来,这个问题的更好解决方案是,我将要在连接表中使用的数据存储在存储邮件数据的同一个表中。听起来我会得到很多重复的条目,但没有,因为我有一个字段具有文本类型并包含这样的用户 ID:*24*32*249* 如果我想查询它们,我使用 mysql LIKE 方法。删除是另一个问题,但为此我还有一个字段用于存储删除帖子的人。 很遗憾我不知道如何加入。
那么你会推荐什么?还有其他方法吗?
最佳答案
听起来您正在使用 n:m 关系。如果是,请不要将 ID 列表放在单个列中,而是创建一个包含两列的映射表 - 表 1 的主键和表 2 的主键.然后选择、插入和删除都将很容易,而且仍然很便宜。
关于mysql - 如何在mysql中存储数据,以获得最快的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2846973/