讨论in VS or
在当前版本中(5.6.x),
1 数据量较小的情况下,效率相差无几。
2 数据量较大的时候,in 效率平稳降低,or 急剧降低。
请尊重知识,请尊重原创 更多资料参考请见 http://www.cezuwang.com/listFilm?page=1&areaId=906&filmTypeId=1
讨论in VS exists
in 与exists的本质: in 是两张变的hash连接,exists是外层变loop循环,每次循环操作内层表。
在当前版本中(5.6.x),
1 当数据量较小的时候,使用任何一种效率都不受影响。
2 当数据量较大的时候 分为两种情况
1) 子查询的结果集较小,这时候使用in的效率比较好
2) 子查询的结果集较大,这时候使用exists效率好。
3)能用between的地方就不要用in
讨论not in VS not exists
在当前版本中(5.6.x),
not exists 的效率始终比not in 要好。
可以用distinct就不要用group by
请尊重知识,请尊重原创 更多资料参考请见 http://www.cezuwang.com/listFilm?page=1&areaId=906&filmTypeId=1
注意mysql的版本,可能等下一个大版本更新的时候,一切都可能会改变。
分页的时候 尽量如此优化
select * from page where id between 1000000 and 1000010;