千家信息网

如果你的系统需要在一张很大的表上创建一个索引,你会考虑哪些因素?

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,如果你的系统需要在一张很大的表上创建一个索引,你会考虑哪些因素?1)关于大表创建索引,如果从综合考虑多个维度来看,我会考虑:1. 为什么需要创建索引,即索引创建的之后的性能是否能够提升2. 创建什么样
千家信息网最后更新 2026年11月02日如果你的系统需要在一张很大的表上创建一个索引,你会考虑哪些因素?

如果你的系统需要在一张很大的表上创建一个索引,你会考虑哪些因素?

1)关于大表创建索引,如果从综合考虑多个维度来看,我会考虑:

1. 为什么需要创建索引,即索引创建的之后的性能是否能够提升

2. 创建什么样的索引,即索引的类型

3. 创建索引的影响,此时需要了解索引的创建过程,以及如果优化索引的创建效率以减少对业务的影响

4. 什么时候创建索引

5. 有没有其他方式来替代这个过程

2)以下关于几种考虑因素的分析过程: 1.为什么需要创建索引

A. 结合应用查询场景,比如是否存在相应关键业务的SQL需要使用到索引相关字段的条件,其SQL执行频繁是否较大;该部分业务SQL根据索引所返回的结果集大小,比如一个表有一个亿,每次根据相应条件返回了几千万的结果集,那创建该索引是否真正有效

B. 结合表数据分布情况,第一个是列数据选择性问题,如果选择性不高,有时索引回表的cost比全表扫描大,优化器选择执行计划路径是可能不选择索引。第二个列数据较为无序,导致创建索引后集群因子较高,增加索引回表成本等。

C. 结合表数据变化情况,,增加一个索引便需要多维护一个索引,对一张数据变化频率较高的表,索引太多会增加dml操作特别是insert时的索引维护成本,影响执行效率

2.创建什么样的索引

A.如果使用多个条件便可以创建复合索引

B.如果业务sql条件存在函数,那就要考虑函数索引

C.如果一个列基数较低,那是否考虑选择位图索引,前提是其列数据很少更新

D.分区表是否创建本地索引

3.创建索引的影响

我们都知道创建索引会与dml操作相互影响以及还有大量的IO操作等。

首先,是了解创建索引的过程,才能解决创建索引带来的问题,我做了个创建索引的实验,并通过10046追踪,创建索引的主要过程如下:

A. 开始读取数据字典如统计信息,对象信息等

B. 使用share mode nowait将表锁住,此时其他会话只可读该表但无法修改该表。

C. 读取一些信息等判断后在obj$初始化索引对象信息

D.开始抓取表数据等一系列大量IO操作,该过程时间相对较长:

E.往seg$,icol$,ind$等信息表中插入相应信息

完成整个索引排序创建索引,扫描表

从以上索引的创建过程,我们可以考虑的问题点总结是:

A.此过程会加共享锁以至于阻塞dml操作,因此创建索引尽量选择业务空闲期进行,同时也可以考虑online方式创建。

B.此过程需要大量读取表数据并排序操作,以及insert update操作,此时需要考虑存储IO性能

C.此过程会产生大量redo,可以考虑nologing模式

D.同时需要考虑索引的空间大小,关注表空间和临时表空间

E.同时可以使用并行加快操作,这也是我们常做的。

4. 什么时候创建索引

不用考虑,业务空闲期

5. 有没有其他方式来替代这个过程

可以考虑数据迁移方式,创建一张新表添加索引,在线迁入数据后 rename表

索引 数据 过程 业务 信息 选择 影响 方式 条件 A. B. C. 同时 空间 问题 D. 因素 函数 多个 大小 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技互联网 广州百单互联网科技有限公司 智能科技公司是互联网公司吗 互联网巨头科技公司 互联网 卓越科技 卓越科技(互联网 ) 知域互联网科技有限公司大骗子 互联网与医疗科技 链环科技传统企业怎么转型互联网 银川新华互联网科技学校联系电话 佛山市拉法互联网科技有限公司 长沙茂晟互联网科技有限公司 银行科技岗属于互联网吗 21世纪互联网科技成就 互联网科技数字货币 互联网安防科技感 西安有哪些互联网高科技企业 银川新华互联网科技学校原画 科技互联网专业工作会议发言稿 利用互联网等科技手段 世界互联网领先科技成果 郑州华宇互联网科技 互联网科技产品 新华互联网科技2019 福州新华互联网科技学校 知乎 互联网金融科技公司干啥的 小米互联网科技园入驻 宁波跨境商互联网科技有限公司 科技和互联网行业的特点 长沙易易互联网科技有限公司
0