背景
线上业务清单表数据有2.4亿条,业务场景主要:清单插入,清单查询(业务量较少),数据统计等;
考虑通过分区提升数据统计性能,Oracle分区有范围分区、哈希分区、列表分区等,不同分区适用场景应该是有区别的,本文档通过测试,验证并总结范围分区、哈希分区的适合场景;
测试环境
分别使用范围分区、哈希分区创建临时表,并建立索引,然后倒入7000万条数据;
测试一:聚合操作
分别执行如下SQL的执行计划:
不分区
select pay_id,balance_type_id,sum(balance) from billing.info_pay_balance
group by pay_id,balance_type_id;
范围分区
select pay_id,balance_type_id,sum(balance) from balance_range
group by pay_id,balance_type_id;
哈希分区
select pay_id,balance_type_id,sum(balance) from balance_hash
group by pay_id,balance_type_id;
测试二:查询
范围分区
select * from balance_range where pay_id = '2158504190113502';
哈希分区
select * from balance_hash where pay_id = '2158504190113502';
测试总结