analyze 操作只是统计信息,并将统计信息存放起来供日后分析SQL使用,不进行重建之类的具体实施性操作。
analyze table tablename compute statistics
等同于
analyze table tablename compute statistics for table for all indexes for all columns
条件1: 在分析(analyze)指定索引之后,查询index_stats的height字段的值,如果这个值>=4 ,则最好重建(rebuild)这个索引。虽然这个规则不是总是正确,但如果这个值一直都是不变的,则这个索引也就不需重建。
条件2: 在分析(analyze)指定索引之后,查询index_stats的del_lf_rows和lf_rows的值,如果(del_lf_rows/lf_rows)*100 > = 20,则这个索引也需要重建。
Alter index index_name rebuild;
Alter index index_name rebuild online;
rebuild和rebuild online的区别:
对于大数据、高可用性的系统,索引rebuild动作一定要慎用,最好选择在DML操作比较少的时间窗进行,避免影响业务系统; rebuild online和rebuild在处理上的差异。相对于rebuild,rebuild online对于DML操作的锁定动作是比较小的,但是相应操作时间也比较多。如果是高可用7*24系统,使用rebuild.