[请益] 关于 where 前后顺序是否会影响效能

楼主: tas72732002 (葱头)   2014-05-06 13:35:39
※ [本文转录自 Database 看板 #1JPwsaNg ]
作者: tas72732002 (葱头) 看板: Database
标题: [SQL ] 关于 where 前后顺序是否会影响效能
时间: Mon May 5 23:26:26 2014
数据库名称:MySQL
数据库版本:5.1.33
内容/问题描述:
我想请问一下,假设account是帐号, is_ban(1:代表被锁帐号)
(1) select * from where account='123' and is_ban=0;
(2) select * from where is_ban=0 and account='123';
以上述两句sql,第1句sql是否优于第二句还是一样??
以第1句sql来说数据库运作方式是否是先找出account='123'的rows再找该rows is_ban=0,
还是说先筛选account='123' 再筛选is_ban=0,两个筛选出来的rows再做and??
较常理来说先找account='123'再找is_ban=0会优于先找is_ban再找account='123'吗?
最后题外问个问题 where account='123' and is_ban=0; database换按照sql由左而右的语法进行筛选是嘛?? 也就是先筛选account='123' 再筛选is_ban=0
作者: Shiehnpin (XDman)   2014-05-06 01:30:00
记忆中是会受到影响,所以要把严苛的条件放前面
作者: MOONRAKER (㊣牛鹤鳗毛人)   2014-05-06 14:48:00
有一说绝不要在WHERE最前面写 '1=1 AND' |D
作者: crossdunk (推嘘自如)   2014-05-06 17:58:00
2的好
作者: kerash (.TW)   2014-05-06 20:51:00
做合并表搜寻的处理 条件式会有很明显的差别

Links booklink

Contact Us: admin [ a t ] ucptt.com