sql執(zhí)行順序from,on,join。參考文章有兩個(gè)表posts 10000條數(shù)據(jù),post_slugs 14條記錄,posts,兩個(gè)表通過post_id關(guān)聯(lián)。使用mysqlSELECT * from posts,post_slugs where post_slugs.post_id=posts.post_id,按sql執(zhí)行順序,from之后是兩個(gè)表的迪卡爾積,因此where條件實(shí)際操作的數(shù)據(jù)應(yīng)該是10000X14條記錄。SELECT * from posts join post_slugs on post_slugs.post_id=posts.post_id按sql執(zhí)行順序,from讀取posts表的數(shù)據(jù)生成虛表T1,在根據(jù)on條件讀取post_slugs滿足條件的數(shù)據(jù)生成虛表T2,再根據(jù)join方式,插入需要保留的數(shù)據(jù),那實(shí)際上join之后的數(shù)據(jù)量應(yīng)該是14條記錄。但是,實(shí)際上兩條語句執(zhí)行時(shí)間沒有什么差異。這是因?yàn)閙ysql優(yōu)化器處理了還是說執(zhí)行順序理解有誤?
添加回答
舉報(bào)
0/150
提交
取消