EXISTS与in的适用范围及BiTmap和BTree索引的适用范围
2014-02-13 10:13
281 查看
1.EXISTS与in的适用范围:
EXISTS与IN的使用效率的问题,通常情况下采用exists要比 in效率高,因为IN不走索引,但要看实际情况具体使用。
IN适合于外表大而内表小的情况;EXISTS适合于外表小而 内表大的情况。
EXISTS与IN的使用效率的问题,通常情况下采用exists要比 in效率高,因为IN不走索引,但要看实际情况具体使用。
IN适合于外表大而内表小的情况;EXISTS适合于外表小而 内表大的情况。
2.BitMap和BTree的适用范围:
BitMap 适用范围:虽然BitMap索引能够提供较好的查询性能,但是因为BitMap索引在执行DML语句的时候,会锁定相关的bitmapsegment(dsi 402e p210),代价比较大,并且不支持唯一索引。所以它一般只适用于OLAP系统上的那些不常更新,或者根本不会执行DML语句的表上,以及性别这种字段上。
B-Tree 使用范围:对于unique 以及 primary key 一般都使用B-Tree索引,能够提升较高的性能,并且对比与BitMap索引来说,因为每一条Index entry只包含唯一的rowid,所以不需要额外的Lock,经常使用于OLTP系统当中。
相关文章推荐
- 复合索引 优化和适用范围
- SQL聚焦索引与非聚焦索引的适用范围
- 复合索引 优化和适用范围
- oracle-btree和bitmap索引
- mysql btree与hash索引的适用场景和限制
- ORACLE三大索引适用范围
- 复合索引 优化和适用范围
- mysql btree与hash索引的适用场景和限制
- 自动建立正确索引(btree,hash,gin,gist,sp-gist,brin,bitmap...)的方法
- 23种设计模式的意图和适用范围
- in和exists区别
- IIS7的FTP出错: 451 No mapping for the unicode character exists in the target multi-byte code page
- Convert.ToInt32(gvProjectName.DataKeys[e.RowIndex].Value)索引超出范围问题
- NOT EXISTS and NOT IN区别
- In和exists使用及性能分析(三):in和exists的性能分析
- in和exists的区别与SQL执行效率分析
- 浅析MySQL中的Index Condition Pushdown (ICP 索引条件下推)和Multi-Range Read(MRR 索引多范围查找)查询优化
- oracle索引介绍之位图(bitmap)索引
- Mysql几种索引方式的区别及适用情况 (转)
- in 和 Exists的用法区别