国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

mysql優(yōu)化 - MySQL中使用UNION進(jìn)行兩表合并,去重導(dǎo)致效率低下,請(qǐng)問(wèn)如何優(yōu)化?

瀏覽:106日期:2022-06-21 15:42:56

問(wèn)題描述

如下SQL語(yǔ)句在MySQL中執(zhí)行需要2秒左右的時(shí)間,如果使用UNION ALL進(jìn)行不去重合并只需要0.4秒,UNION ALL配合DISTINCT來(lái)去重速度又變成2秒了,請(qǐng)問(wèn)如何進(jìn)行優(yōu)化?

SELECT a. KEY, a. DATA, a.date_addedFROM (( SELECTCONCAT(’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_addedFROM `cf_affiliate_activity` aa ) ) aORDER BY a.date_added DESCLIMIT 0, 5;

問(wèn)題解答

回答1:

看你寫的語(yǔ)句key前綴不一樣永遠(yuǎn)不會(huì)有重復(fù)啊,直接union all

回答2:

當(dāng)然先是使用QEP

mysql> explain select * from wp_options limit 1G;*************************** 1. row *************************** id: 1 select_type: SIMPLEtable: wp_options partitions: NULL type: ALLpossible_keys: NULL key: NULL key_len: NULL ref: NULL rows: 136 filtered: 100.00Extra: NULL1 row in set, 1 warning (0.01 sec)mysql> show session status like ’Handler_read%’;+-----------------------+-------+| Variable_name | Value |+-----------------------+-------+| Handler_read_first | 3 || Handler_read_key | 3 || Handler_read_last | 0 || Handler_read_next | 0 || Handler_read_prev | 0 || Handler_read_rnd | 0 || Handler_read_rnd_next | 209 |+-----------------------+-------+7 rows in set (0.01 sec)

至于每個(gè)字段的具體含義,自己查資料。

回答3:

@prolifes 是對(duì)的。也許題主沒(méi)表述清楚。

我補(bǔ)充另外一個(gè)思路,因?yàn)槟阕詈笾恍枰?條數(shù)據(jù),從ca中取5條,再?gòu)腶a中取5條,總共10條排序,這個(gè)會(huì)很快。

SELECT a. KEY, a. DATA, a.date_addedFROM (( SELECTCONCAT(’customer_’, ca. KEY) AS `key`,ca. DATA,ca.date_added FROM`cf_customer_activity` ca ORDER BY a.date_added DESC /* 如果date_added有索引的話,這個(gè)會(huì)比較快 */ LIMIT 0,5)UNION ALL (SELECT CONCAT(’affiliate_’, aa. KEY) AS `key`, aa. DATA, aa.date_addedFROM `cf_affiliate_activity` aaORDER BY a.date_added DESC /* 如果date_added有索引的話,這個(gè)會(huì)比較快 */ LIMIT 0,5 ) ) aORDER BY a.date_added DESCLIMIT 0, 5;

主站蜘蛛池模板: 正蓝旗| 贡觉县| 濮阳县| 曲靖市| 定陶县| 井陉县| 从化市| 江孜县| 东丽区| 灵宝市| 栖霞市| 威信县| 石棉县| 阿瓦提县| 滦南县| 股票| 和田县| 盐亭县| 信宜市| 思茅市| 赤城县| 兴国县| 若羌县| 洮南市| 禹州市| 安阳县| 龙州县| 广河县| 韶山市| 永康市| 齐齐哈尔市| 宁明县| 兰州市| 汶川县| 阿荣旗| 梧州市| 金坛市| 丁青县| 纳雍县| 游戏| 信阳市|