MySQL中SQL优化的常用方法
1、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2、应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。 3、应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is...
SQL优化常用方法53
分离表和索引总是将你的表和索引建立在不同的表空间内(TABLESPACES). 决不要将不属于ORACLE内部系统的对象存放到SYSTEM表空间里. 同时,确保数据表空间和索引表空间置于不同的硬盘上. 译者按: "同时,确保数据表空间和索引表空间置与不同的硬盘上."可能改为如下更为准确 "同时,确保数据表空间和索引表空间置与不同的硬盘控制卡控制的硬盘上."
SQL优化常用方法51
使用显式的游标(CURSORs) 使用隐式的游标,将会执行两次操作. 第一次检索记录, 第二次检查TOO MANY ROWS 这个exception . 而显式游标不执行第二次操作.
SQL优化常用方法50
使用日期 当使用日期是,需要注意如果有超过5位小数加到日期上, 这个日期会进到下一天! 例如: SELECT TO_DATE(‘01-JAN-93'+.99999) FROM DUAL; Returns: '01-JAN-93 23:59:59' SELECT TO_DATE(‘01-JAN-93'+.999999) FROM DUAL; Returns: '02-JAN-93 00:00:00'
SQL优化常用方法49
优化GROUP BY 提高GROUP BY 语句的效率, 可以通过将不需要的记录在GROUP BY 之前过滤掉.下面两个查询返回相同结果但第二个明显就快了许多.低效: SELECT JOB , AVG(SAL) FROM EMP GROUP JOB HAVING JOB = ‘PRESIDENT' OR JOB = ‘MANAGER' 高效: SELECT JOB , AVG(SAL) FROM....
SQL优化常用方法47
CBO下使用更具选择性的索引 基于成本的优化器(CBO,Cost-Based Optimizer)对索引的选择性进行判断来决定索引的使用是否能提高效率.如果索引有很高的选择性, 那就是说对于每个不重复的索引键值,只对应数量很少的记录.比如, 表中共有100条记录而其中有80个不重复的索引键值. 这个索引的选择性就是80/100 = 0.8. 选择性越高,通过索引键值检索出的记录就越少.如果索引的....
SQL优化常用方法46
连接多个扫描 如果你对一个列和一组有限的值进行比较, 优化器可能执行多次扫描并对结果进行合并连接. 举例: SELECT * FROM LODGING WHERE MANAGER IN (‘BILL GATES','KEN MULLER'); 优化器可能将它转换成以下形式 SELECT * FROM LODGING WHERE MANAGER = ‘BILL GATES' OR MANAGER ....
SQL优化常用方法45
需要当心的WHERE子句 某些SELECT 语句中的WHERE子句不使用索引. 这里有一些例子. 在下面的例子里,!=将不使用索引.记住,索引只能告诉你什么存在于表中,而不能告诉你什么不存在于表中. 不使用索引: SELECT ACCOUNT_NAME FROM TRANSACTION WHERE AMOUNT !=0; 使用索引: SELECT ACCOUNT_NAME FROM TRANSA....
SQL优化常用方法44
避免改变索引列的类型. 当比较不同数据类型的数据时, ORACLE自动对列进行简单的类型转换.假设 EMPNO是一个数值类型的索引列. SELECT … FROM EMP WHERE EMPNO = ‘123' 实际上,经过ORACLE类型转换, 语句转化为: SELECT … FROM EMP WHERE EMPNO = TO_NUMBER(‘123') 幸运的是,类型转换没有发生在索引列上,....
SQL优化常用方法43
用WHERE替代ORDER BY ORDER BY 子句只在两种严格的条件下使用索引. ORDER BY中所有的列必须包含在相同的索引中并保持在索引中的排列顺序. ORDER BY中所有的列必须定义为非空. WHERE子句使用的索引和ORDER BY子句中所使用的索引不能并列. 例如: 表DEPT包含以下列: DEPT_CODE PK NOT NULL DEPT_DESC NOT NULL DE....
本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。
数据库
分享数据库前沿,解构实战干货,推动数据库技术变革
+关注