【問題詳細描述】
有如下 sql 語句。SQL1 耗時約 4s,SQL二、SQL3 耗時約 1 個小時。有辦法經過優化 SQL2 作到作完子查詢再把全部條件一塊兒下壓到 SequoiaDB 嗎? html
表:ibs.pb_log, 數據量:600億 ,索引:log_cstno + log_datetime
表:ibs.pb_cstinf_pro,數據量:4千萬, 索引:cip_ctfno sql
SQL1:
SELECT * FROM ibs.pb_log WHERE log_cstno IN
('2339139')
AND log_datetime BETWEEN CONCAT('20190101', '000000') AND CONCAT('20190429', '000000')
SQL2:
SELECT * FROM ibs.pb_log WHERE log_cstno IN
(SELECT cip_cstno FROM ibs.pb_cstinf_pro WHERE cip_ctfno IN ('360426198807174073'))
AND log_datetime BETWEEN CONCAT('20190101', '000000') AND CONCAT('20190429', '000000') oop
SQL3:
SELECT * FROM ibs.pb_log LEFT JOIN ibs.pb_cstinf_pro ON
log_cstno=cip_cstno WHERE
log_datetime BETWEEN CONCAT('20190101', '000000') AND CONCAT('20190429', '000000') AND
cip_ctfno IN ('360426198807174073') 優化
查詢計劃見附件。htm
【解決辦法】blog
【參考資料】
表的三種Join方法 (NLJOIN, HSJOIN, MSJOIN): https://www.cnblogs.com/sophy...索引
【解決辦法】ip
【參考資料】
表的三種Join方法 (NLJOIN, HSJOIN, MSJOIN): https://www.cnblogs.com/sophy...ci