【发布时间】:2012-01-25 00:22:07
【问题描述】:
在SELECT内使用SELECT是很常见的,以减少查询次数;但正如我所检查的那样,这会导致查询缓慢(这显然对 mysql 性能有害)。我有一个简单的查询
SELECT something
FROM posts
WHERE id IN (
SELECT tag_map.id
FROM tag_map
INNER JOIN tags
ON tags.tag_id=tag_map.tag_id
WHERE tag IN ('tag1', 'tag2', 'tag3', 'tag4', 'tag5', 'tag6')
)
这会导致“查询时间 3-4 秒;锁定时间大约 0.000090 秒;检查大约 200 行”的慢查询。
如果我拆分SELECT 查询,每个查询都会很快;但是这样会增加不擅长高并发的查询。
这是正常情况,还是我的编码有问题?
【问题讨论】:
-
SELECT在SELECT内?!这就像那部电影......选择。