ホームページ > データベース > mysql チュートリアル > index rebuild和rebuild online的区别

index rebuild和rebuild online的区别

WBOY
リリース: 2016-06-07 16:43:39
オリジナル
1394 人が閲覧しました

rebuild online时系统会产生一个SYS_JOURNAL_xxx的IOT类型的系统临时日志表,所有rebuild online时索引的变化都记录在这个表中,

      曾经看到过淘宝的这个面试题:在一个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就完成了,类似于物化视图。

本文永久更新链接地址:

linux

関連ラベル:
i
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート