通常使用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
查询拆分,每个查询都会很快;但这会增加查询的数量,在高并发情况下不太好。这是正常情况吗?还是我的编码有问题?