久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

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

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

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

問題描述

如下SQL語句在MySQL中執(zhí)行需要2秒左右的時(shí)間,如果使用UNION ALL進(jìn)行不去重合并只需要0.4秒,UNION ALL配合DISTINCT來去重速度又變成2秒了,請(qǐng)問如何進(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;

問題解答

回答1:

看你寫的語句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ì)的。也許題主沒表述清楚。

我補(bǔ)充另外一個(gè)思路,因?yàn)槟阕詈笾恍枰?條數(shù)據(jù),從ca中取5條,再從aa中取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;

主站蜘蛛池模板: 宁远县| 南陵县| 轮台县| 昂仁县| 兴城市| 武义县| 闵行区| 甘德县| 武威市| 年辖:市辖区| 诸暨市| 康平县| 彭州市| 桂东县| 延庆县| 聊城市| 精河县| 洮南市| 盈江县| 河间市| 高唐县| 习水县| 枞阳县| 阳东县| 酒泉市| 晋城| 湘潭市| 昭觉县| 西昌市| 西乌| 泽州县| 泰来县| 临城县| 太保市| 福贡县| 东平县| 巴彦淖尔市| 萨嘎县| 富阳市| 长阳| 钦州市|