如果一个table很大,你怎样考虑建立索引?你建立组合索引考虑什么?
-----table很大表示该表的更新很频繁,建立索引并不一定就会高效,还是要从业务的角度考虑是否有必要保留那么多数据;根据业务需求,也可以考虑将这个table改造为分区表,例如按月份进行分区,然后建立分区索引,可以避免大表扫描;根据这个table所执行的SQL进行优化,选取特定字段建立索引。
-----table很大表示该表的更新很频繁,建立索引并不一定就会高效,还是要从业务的角度考虑是否有必要保留那么多数据;根据业务需求,也可以考虑将这个table改造为分区表,例如按月份进行分区,然后建立分区索引,可以避免大表扫描;根据这个table所执行的SQL进行优化,选取特定字段建立索引。
建立组合索引,可以考虑跟单列索引进行合并,减少索引数量;如果组合列的查询返回量较少,建立组合索引的效果才会理想;等值查询列在建立索引时放在前面效果较好;组合索引的字段不宜超过3个
1.根据实际应用考虑联合索引,如果有两列或者三列经常性被组合使用,可以考虑建立联合索引(可以对根据业务分析,将等值查询列放在前面)。
2.如果没有上述情况,或者其中某个字段是主键,可以考虑只建立单字段索引(复合索引开销大)。
3.要是没有固定字段,然而又有几个字段经常被条件所涉及,就分别建立单字段索引。
4.如果会被作为被驱动表,连接字段要建立索引。
5.如果有外键,外键加上索引列。