假设我想根据与内容相关联的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这会不会更有效率?
发布于 2011-05-19 05:16:29
我认为很难说它是否会更快,数据库最终仍然必须做同样的工作,但它可能能够使用连接算法比使用索引查找更有效,您必须对其进行基准测试。
发布于 2011-05-19 05:14:38
或者,更简单的东西:
SELECT field1, field2, ... fieldn
FROM content
WHERE user_id IN (1,2,3,4,5,6,7...50)通过这种方式,从PHP之类的东西构建为动态SQL非常容易。
https://stackoverflow.com/questions/6051093
复制相似问题