mysql聯合查詢是用DISTINCT和GROUP BY之間的效能區別
阿新 • • 發佈:2019-02-07
在開發過程中遇到的問題:
有兩張表,登入記錄表和IP歸屬表
需求:查詢某個地區和某個時間段登入的記錄
有登入表有4000條資料,IP歸屬表有400條資料
用GROUP BY查詢結果
SELECT * FROM login_log WHERE acctLoginIP IN (SELECT ip FROM ip_geolocation WHERE
region LIKE '%西藏%' GROUP BY ip) AND acctLoginTime BETWEEN '2014-10-01 00:00:00' AND '2014-12-25 23:59:59' LIMIT 10;
結果用時4秒左右
用DISTINCT
SELECT * FROM login_log WHERE acctLoginIP IN (SELECT DISTINCT ip FROM ip_geolocation WHERE
region LIKE '%西藏%') AND acctLoginTime BETWEEN '2014-10-01 00:00:00' AND '2014-12-25 23:59:59' LIMIT 10;
結果用時0.005秒左右
有登入表有4000條資料