8.2.1.8 IS NULL Optimization NULL 优化:
来源:互联网 发布:淘宝运营是什么工作 编辑:程序博客网 时间:2024/05/17 08:15
8.2.1.8 IS NULL Optimization NULL 优化:Oracle 对待null值:SQL> create table t100(id int,name char(10));表已创建。begin for i in 1 .. 1000 loop insert into t100 values(i,'a'||i); end loop; commit; end; BEGIN DBMS_STATS.GATHER_TABLE_STATS(ownname => 'SYS', tabname => 'T100', estimate_percent => 100, method_opt => 'for all columns size repeat', no_invalidate => FALSE, degree => 8, cascade => TRUE); END; / SQL> explain plan for select * from t100 where id=NULL;已解释。SQL> select * from table(dbms_xplan.display());PLAN_TABLE_OUTPUT--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Plan hash value: 3750333395---------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |---------------------------------------------------------------------------| 0 | SELECT STATEMENT | |1 | 15 |0 (0)| ||* 1 | FILTER | | | | | || 2 | TABLE ACCESS FULL| T100 | 1000 | 15000 |3 (0)| 00:00:01 |---------------------------------------------------------------------------Predicate Information (identified by operation id):--------------------------------------------------- 1 - filter(NULL IS NOT NULL)已选择14行。Oracle 索引不存储NULL值MySQL 可以执行相同的优化在col_name IS NULL ,它可以使用col_name=常值。MySQL 可以使用indexes 和ranges 来搜索NULL 使用IS NULLmysql> select * from t100 where id is NULL;+----+------+-------+------+| sn | id | quota | free |+----+------+-------+------+| 11 | NULL | xx | yy |+----+------+-------+------+1 row in set (0.00 sec)mysql> explain select * from t100 where id is NULL;+----+-------------+-------+------+---------------+-----------+---------+-------+------+-----------------------+| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |+----+-------------+-------+------+---------------+-----------+---------+-------+------+-----------------------+| 1 | SIMPLE | t100 | ref | t1oo_idx1 | t1oo_idx1 | 5 | const | 1 | Using index condition |+----+-------------+-------+------+---------------+-----------+---------+-------+------+-----------------------+1 row in set (0.00 sec)Oracle 里索引不存储NULL值,Mysql里索引包含NULL值例子:SELECT * FROM tbl_name WHERE key_col IS NULL;SELECT * FROM tbl_name WHERE key_col <=> NULL;SELECT * FROM tbl_name WHERE key_col=const1 OR key_col=const2 OR key_col IS NULL;如果一个WHERE 子句包含一个col_name IS NULL 条件 对于一个列定义为NOT NULL,那个表达式是优化掉的,这个优化不会发生 当列可能产生NULL,比如,如果它来自LEFT JOIN 右边的表MySQL 也可以优化 组合 col_name = expr OR col_name IS NULL, 是解决子查询的常见形式, EXPLAIN 显示ref_or_null 当优化器被使用mysql> explain select * from t100 where id=7 or id is NULL;+----+-------------+-------+-------------+---------------+-----------+---------+-------+------+-----------------------+| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |+----+-------------+-------+-------------+---------------+-----------+---------+-------+------+-----------------------+| 1 | SIMPLE | t100 | ref_or_null | t1oo_idx1 | t1oo_idx1 | 5 | const | 2 | Using index condition |+----+-------------+-------+-------------+---------------+-----------+---------+-------+------+-----------------------+1 row in set (0.00 sec)优化器可以处理 IS NULL 对于任何索引部分
0 0
- 8.2.1.8 IS NULL Optimization NULL 优化:
- 8.2.1.8 IS NULL Optimization NULL 优化:
- 8.2.1.8 IS NULL Optimization IS NULL 优化 (索引不存储NULL值)
- oracle之 is null 优化
- is null && is not null
- mysql <> null != null is not null
- ORACLE查询优化之is null和is not null优化
- "=NULL"和"Is NULL"
- Oracle之NULL IS NULL
- oracle 性能优化操作六: 去掉Where子句中的IS NULL和IS NOT NULL
- oracle 性能优化操作六: 去掉Where子句中的IS NULL和IS NOT NULL
- 【MYSQL系列--优化5】——Is Null 优化
- oracle is null 和is not null
- is null 和 is not null
- ORACLE-017:SQL优化-is not null和nvl
- parent is null PopupMenu
- What is /dev/null
- why gpDesc is NULL?
- java.lang.IllegalArgumentException: 'sessionFactory' or 'hibernateTemplate' is required
- DOS下的一些操作命令
- 关于 python ImportError: No module named 的问题
- hmtl5 拖放研究
- 机械革命X6ti安装Ubuntu和NVIDIA的显卡驱动
- 8.2.1.8 IS NULL Optimization NULL 优化:
- Robotium自动化测试框架实用教程
- iOS中Appdelegate的生命周期
- java ExecutorService 并发学习
- MongoDB常用命令
- ipRec topology of network
- 创建过滤器
- 关于cocos2d-js自适应分辨率的预想。
- 网络编程(15)—— 实现利用管道保存客户端数据的socket服务端