有什么方法優(yōu)化select語句

參考答案:原則是避免全表掃描,

 如果是有多表關(guān)聯(lián)的 把記錄數(shù)少的表放在前面,

 能把多的記錄過慮的條件放在where從句前面,

 exist代替in條件

 盡可能用索引

 

select索引什么時(shí)候失效

參考答案:索引的字段在sum等函數(shù)中時(shí)

------------------------------------------------
用exists代替in
SELECT *
FROM EMP (基礎(chǔ)表)
WHERE EMPNO > 0
AND DEPTNO IN (SELECT DEPTNO
FROM DEPT
WHERE LOC = ‘MELB')

高效exists:
SELECT *
FROM EMP (基礎(chǔ)表)
WHERE EMPNO > 0
AND EXISTS (SELECT ‘X'
FROM DEPT
WHERE DEPT.DEPTNO = EMP.DEPTNO
AND LOC = ‘MELB')