是否有更好的方法来编写此查询,因为它在大约 400k 行中进行搜索并需要 50 秒才能执行?
SELECT pfile_print_media_id
, market.market_name
, full_name
, image
, pfile_date
FROM pfile_print_media
LEFT
JOIN pfiles
ON pfiles.pfile_id = pfile_print_media.pfile_id
LEFT
JOIN publications
ON publications.publication_id = pfile_print_media.publication_id
LEFT
JOIN clients
ON pfiles.client_id = clients.client_id
LEFT
JOIN client_markets
ON client_markets.client_id = clients.client_id
LEFT
JOIN market
ON market.market_id = clients.market
WHERE pfiles.media_type = 'PRINT'
AND clients.market = 17
OR client_markets.market_id = 17
OR client_type = 'INTERNATIONAL'
GROUP
BY pfiles.pfile_id
ORDER
BY pfiles.pfile_date DESC
LIMIT 4
解释查询输出:
最佳答案
如果没有使用出版物表中的列 - 可能会用子查询替换联接以仅检查键是否存在将加快查询速度。
关于mysql - 优化MYSQL大数据查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48487472/