您在构建查询时指定的顺序是否会影响性能?或者 SQL 进行智能过滤。
例如假设我有一个包含 200 万条记录的 Employee 表:
Employee( emp_id, name, dept_id, country_id )
不要说我想获得国家 id 500 和部门 id 17 中那些员工的 ID 和姓名。不要说那个部门大约有 300k,那个国家大约有 100 万,但是那些同时满足这两个标准的结果是 50k .
如果我这样做会不会对性能产生影响:
SELECT *
FROM employees
where dept_id = 17 and country_id= 500
比我这样做:
SELECT *
FROM employees
where country_id= 500 and dept_id = 17
假设后者将表减少到 100 万,然后从那里做剩下的,第一个查询将减少到 300k 并从那里做第二个过滤器。
但是,如前所述,我不确定这是否是 SQL 电机处理查询的方式。