网站首页 > 技术文章 正文
索引数量:
对于OLTP应用的业务系统,单个表上索引的个数不超过5个。对于OLTP系统来说,索引数量太多会严重影响DML操作
索引类型选择btree还是位图索引:
B-TREE索引,一般情况下选择普通的b-tree索引,也是oracle默认的索引。
位图索引, 对于不同的值很少的列,且数据量较大,且DML操作很少,这种情况可以选择使用位图索引。比如性别,只有男和女 且DML操作也会很少,此时选择位图索引,效率可能会更高。
复合索引
Oracle 复合索引设计原理:
前缀性:复合索引的前缀性是指只有当复合索引的第一个字段出现在SQL语句的谓词条件中时,该索引才会被用到。如复合索引为(ename,job,mgr),只要谓词条件中出现第一个字段ename,就可以用复合索引,否则不会用。唯一的例外是skip scan index,就是如果Oracle发现第一个字段的值很少,会自动拆分为两个复合索引。如复合索引(gender,ename,job,mgr),因为第一个字段gender只有两个值:男和女,因此Oracle会将这个索引拆分成('男',ename,job,mgr)和('女',ename,job,mgr)两个复合索引,这样即使gender没有出现在谓词条件中,也可以用该复合索引。
可选性:Oracle建议复合索引应按字段可选性(即值的多少)的高低进行排列,这是因为,字段值越多,可选性越强,定位的记录就越少,查询效率就越高。
设计原则:
创建复合索引时,需要考虑列在索引中的顺序,主要影响的是SKIP SCAN INDEX,当查询条件中有第一列时,不需要考虑列的分布情况。
当查询条件中没有第一列时,需要考虑列的分布情况。尽量把唯一值较少的列放在复合索引的第一列
如果复合索引所包含的字段超过3 个,那么仔细考虑其必要性,考虑减少复合的字段;
不管是单列索引还是复合索引,当列允许为空,且实际有空值时,在查询中可能会不走索引扫描,因为null值不在索引条目中。因此尽可能选择not null的列做为索引列,如果不能避免时,可以给一个默认值。
函数索引
尽量不采用函数索引,函数索引会在insert以及select时多一次函数计算的消耗。
递减索引
进行order by column desc排序时,综合考虑,创建column desc索引,不再额外进行排序操作。
猜你喜欢
- 2025-07-27 数据清洗做不好,整个中台都白搭!
- 2024-10-28 详解oracle中三大类型与隐式数据类型转换
- 2024-10-28 oracle简单增删改查,私信分享资源
- 2024-10-28 ORACLE大对象LOB移动及导出操作报ORA-01555错误解决
- 2024-10-28 oracle——一种列转行的方法 oracle如何列转行
- 2024-10-28 ORACLE中Clob字段在不同数据库间自由地飞翔——SQL+JSON字段解析
- 2024-10-28 工作中遇到的问题 笔记 和大家分享一下 Oracle中的行转列
- 2024-10-28 Oracle编程之使用其他表的字段类型作为变量的类型
- 2024-10-28 oracle针对某列让特定信息排序「decode」
- 2024-10-28 SQL ALTER TABLE 语句 sql自定义函数
你 发表评论:
欢迎- 633℃几个Oracle空值处理函数 oracle处理null值的函数
- 626℃Oracle分析函数之Lag和Lead()使用
- 614℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 609℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 606℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 599℃【数据统计分析】详解Oracle分组函数之CUBE
- 588℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 574℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
-
- CVE-2025-30762|Oracle(java oracle)
- 低代码可能铲不掉“屎山”,但能让这个它更有「型」
- 科技大事件:新苹果手表可通过击掌或握手来传递信息
- 你的百万级上下文窗口大模型,可能并没有你想象中那么强
- DApp 开发中的安全测试(软件测试过程中安全测试的具体应用场景和测试思路)
- 盘点Java中最没用的知识⑧:这3个过时套路,你还在代码里硬撑?
- 机房硬件设备及Oracle数据库软件维护服务项目竞争性磋商公告
- 微软与甲骨文扩大合作关系,推出Oracle Database@Azure
- JPA实体类注解,看这篇就全会了(java实体类注解)
- Java反射机制最全详解(图文全面总结)
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)