有什么方法優(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')