【发布时间】:2011-05-18 21:12:08
【问题描述】:
假设我想根据与该内容关联的 user_id 从内容表中查询数据 - 但我想获取多个用户的内容。
SELECT field1, field2, ... fieldn
FROM content
WHERE user_id=1 OR user_id=2 OR ...
在我看来,这是相对有效的……在某种程度上。假设content 表有 >200k 记录,我对来自 50 个特定用户的记录感兴趣。像下面这样的查询仍然有效吗?
SELECT field1, field2, ... fieldn
FROM content
WHERE user_id=1 OR ... OR user_id=50
我正在考虑创建一个 users_group 表,如下所示:
CREATE TABLE users_group (
group_id int(11),
user_id int(11),
primary_key(group_id,user_id)
);
...并用软件感兴趣的用户组填充它。
然后我可以这样查询:
SELECT field1, field2, ... fieldn
FROM content c
INNER JOIN users_group ug ON c.user_id=ug.user_id
WHERE ug.group_id=1
这样会更有效率吗?
【问题讨论】:
标签: mysql join performance