mysql优化 - MySQL中使用UNION进行两表合并,去重导致效率低下,请问如何优化?
本文介绍了mysql优化 - MySQL中使用UNION进行两表合并,去重导致效率低下,请问如何优化?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
如下SQL语句在MySQL中执行需要2秒左右的时间,如果使用UNION ALL进行不去重合并只需要0.4秒,UNION ALL配合DISTINCT来去重速度又变成2秒了,请问如何进行优化?
SELECT
a. KEY,
a. DATA,
a.date_added
FROM
(
(
SELECT
CONCAT('customer_', ca. KEY) AS `key`,
ca. DATA,
ca.date_added
FROM
`cf_customer_activity` ca
)
UNION
(
SELECT
CONCAT('affiliate_', aa. KEY) AS `key`,
aa. DATA,
aa.date_added
FROM
`cf_affiliate_activity` aa
)
) a
ORDER BY
a.date_added DESC
LIMIT 0,
5;
解决方案
看你写的语句key前缀不一样永远不会有重复啊,直接union all
这篇关于mysql优化 - MySQL中使用UNION进行两表合并,去重导致效率低下,请问如何优化?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文