[英]mysql get latest records by order by desc without subquery
我正在尝试通过以下查询获取结果,但大约需要2分钟才能检索到
SELECT *
FROM customer e
WHERE e.id=324
AND e.g_id IN('x133fv','be6544','e992170','93611c')
and e.enrol_id =
(
select e1.enrol_id
from customer e1
WHERE e1.id=324
AND e1.g_id=e.g_id
ORDER BY update_time DESC, posted_time DESC, enrol_id DESC
LIMIT 1
)
我在(g_id,id)上有索引
还有其他方法可以通过JOIN获得结果吗?
这是您的查询:
SELECT *
FROM customer e
WHERE e.id = 324 AND
e.g_id IN ('x133fv','be6544','e992170','93611c') and
e.enrol_id = (select e1.enrol_id
from customer e1
WHERE e1.id=324 AND e1.g_id=e.g_id
ORDER BY update_time DESC, posted_time DESC, enrol_id DESC
LIMIT 1
)
您可以使用索引来提高性能。 我建议: customer(id, g_id, update_time, posted_time, enrol_id)
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.