设为首页 加入收藏

TOP

indexrebuild和rebuildonline的区别
2015-07-24 10:45:13 来源: 作者: 【 】 浏览:1
Tags:indexrebuild rebuildonline 区别

曾经看到过淘宝的这个面试题:在一个24*7的应用上,需要把一个访问量很大的1000万以上数据级别的表的普通索引(a,b)修改成唯一约束(a,b,c),你一般会选择怎么做,请说出具体的操作步骤与语句。

先online建索引添加约束,然后删除原理的索引。

create index idx_test_abc on w_1 (a,b,c) online ;
alter table test add constraint uni1 unique (a,b,c) novalidate;
drop index ;

为什么要用online呢?原理是什么?

1. rebuild 会阻塞dml语句而rebuild online则不会。

2. rebuild online时系统会产生一个SYS_JOURNAL_xxx的IOT类型的系统临时日志表,所有rebuild online时索引的变化都记录在这个表中,当新的索引创建完成后,把这个表的记录维护到新的索引中去,然后drop掉旧的索引,rebuild online就完成了,类似于物化视图。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Indexstatisticscollectedbug 下一篇C数据类型(枚举enum)和switch语句

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Asus Armoury Crate (2025-12-26 02:52:33)
·WindowsFX (LinuxFX) (2025-12-26 02:52:30)
·[ Linux运维学习 ] (2025-12-26 02:52:27)
·HTTPS 详解一:附带 (2025-12-26 02:20:37)
·TCP/IP协议到底在讲 (2025-12-26 02:20:34)