首页 > 代码库 > SQL 优化记录
SQL 优化记录
1. 对Where 语句的法则
1.1 避免在WHERE子句中使用in,not in,or 或者having。
可以使用 exist 和not exist代替 in和not in。
可以使用表链接代替 exist。Having可以用where代替,如果无法代替可以分两步处理。
例子
1 SELECT * FROM ORDERS WHERE CUSTOMER_NAME NOT IN 2 (SELECT CUSTOMER_NAME FROM CUSTOMER)
优化
1 SELECT * FROM ORDERS WHERE CUSTOMER_NAME not exist 2 (SELECT CUSTOMER_NAME FROM CUSTOMER)
1.2 不要以字符格式声明数字,要以数字格式声明字符值。(日期同样)否则会使索引无效,产生全表扫描。
例子使用:
SELECT emp.ename, emp.job FROM emp WHERE emp.empno = 7369; 不要使用:
SELECT emp.ename, emp.job FROM emp WHERE emp.empno = ‘7369’
2.对Select语句的法则
在应用程序、包和过程中限制使用select * from table这种方式。
3. 排序
避免使用耗费资源的操作,带有DISTINCT,UNION,MINUS,INTERSECT,ORDER BY的SQL语句会启动SQL引擎 执行,耗费资源的排序(SORT)功能. DISTINCT需要一次排序操作, 而其他的至少需要执行两次排序
4.临时表
慎重使用临时表可以极大的提高系统性能
SQL 优化记录
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。