统计sql小结
1 批量思想,尽量一次表IO,计算尽量多的数据,多使用case when,减少表IO
实践证明统计的瓶颈不在计算上,而是在IO上,所以要尽量减少表的读取。
2 能用insert不用update,大数据量表避免使用update,用delete和insert来规避
有这种情况A表包含10个字段,其中第一步可以准备其中4个字段的数据,新增到中间表B,然后第二步可以得到另外6个字段的数据,新增到中间表C
然后B,C表的数据新增到A表,这里需要联合B,C表一次insert入A表中,而不能先insert B到A表,然后再update C表到A表
2 引入中间表 联合查询多张大表时,要引入中间表,两两联合,一步步算出来;
3 要注意加入提示:
INSERT INTO /*+ append */ 去掉不必要的日志
/*+ full(a) */ 全表扫描,不走索引(有index的情况下一定要加这个)
/*+ parallel(a 4) */ 并行处理(4个线程同时处理),读取大表的时候要加
/*+ use_hash(a, b) */ hash关联,提高联合查询效率(会先把小表hash存储)
沙发