在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/網(wǎng)絡(luò)安全/ mysql count join

mysql count join

倆張表 orders members
根據(jù)where條件刷選的數(shù)據(jù)大概是30幾萬
select count(*) from orders where order_status = 'active' and ship_status = '1'
【執(zhí)行的結(jié)果大概是100多毫秒】
select count(o.order_id) from orders o left join members m on o.member_id = m.member_id where o.order_status = 'active' and o.ship_status = '1'
【執(zhí)行的結(jié)果大概是1.6秒左右】

select count(*) from (select o.order_id from orders o left join members m on o.member_id = m.member_id where o.order_status = 'active' and o.ship_status = '1') tmp
【執(zhí)行的結(jié)果大概是1.6秒左右】

理論上來說執(zhí)行時間應(yīng)該差距不大的,sql的執(zhí)行計劃應(yīng)該也是最后才進(jìn)行count統(tǒng)計,統(tǒng)計為什么會有這么大的差距呢?求解

回答
編輯回答
下墜

關(guān)聯(lián)表查詢?nèi)绻型怄I關(guān)系會能快一點,估計沒有做o.member_id外鍵吧?
不過即便有,聯(lián)表查詢也會比不聯(lián)表慢律很多。

2018年3月15日 04:35