如果是数据批量入库,且时间窗口允许,可以做全排序后入库。排序后至少有如下好处:
1.大多数情况下,压缩率会更高;相似数据都聚集了;
2.智能索引的过滤效果会更好,性能更高;相似数据聚集,智能索引直接过滤掉更多不需
要的数据,减少maybe的数据量,也就减少了数据解包扫描;
join查询场景下,如果join的列是有序的,也可以大幅度提升join的性能。
排序对于高并发短查询场景,如电信话单查询场景,有很好的性能提升效果。
如果做不到全局有序,阶段性有序也可以。如每天做一次排序。
还可以数据入库后再排序,
通过 gccli -c参数下发hint /*+ distribute_exec */,否则insert select order会将order给优化掉,任务insert select做order没意义。