同样功能的SQL代码,因为写法不同,性能可能会相差几百倍:
SELECT COUNT(*) FROM NODE_DATA WHERE NODE_ID IN ( SELECT NODE_ID FROM VIEW_NODE WHERE ID_PATH LIKE '%$11F6FE53718CECF8E050007F01007528$%' AND NODE_TYPE='factor' )
受影响的行: 0
时间: 16.602s
改为联接方式查询:
SELECT COUNT(*) FROM NODE_DATA D LEFT JOIN VIEW_NODE N ON N.NODE_ID=D.NODE_ID WHERE N.ID_PATH LIKE '%$11F6FE53718CECF8E050007F01007528$%' AND NODE_TYPE='factor' === 受影响的行: 0 时间: 0.074s
差别:16.602/0.074 = 224.35倍
可以参考这篇关于子查询优化的文章:http://chuansong.me/n/1575034547218