8a数据库(单机)有以下四种常用优化手段:
- 索引
8a数据库支持Hash Index和CP_DIC两种索引,不同的索引可以用于不同场景的优化。
1)Hash Index通常可以用于解决等值查询的定位效率,特别是对以单表精确查询为主的应用场景尤为适合,如电信业务中的并发话单查询等(特别是内存基本充足的场景)。但要注意:hash index只能解决查询定位问题,对物化性能没有帮助。
2)CP_DIC索引其实是一种压缩字典,其通过大幅减少查询中的I/O量来提升查询性能,对distinct值少的列尤为适用,如国家、民族、性别等。
需要注意的是,索引是一种有损的优化手段,使用索引通常会带来维护的成本,会影响数据加载及DML操作的性能,实际使用时需根据具体需求而定。
- 数据排序
可以根据应用场景的实际需求是数据按照某列有序,有序的数据经常可以使智能索引获得更好的过滤效果,同时数据有序通常可以一定程度上解决多列物化离散I/O的问题,使整体查询性能大大提升。
- 压缩
8a目前提供的压缩算法组合包括:31和55两种,默认是55压缩。其中31针对数值和字符采用了不同的压缩算法,压缩比是55的一倍,但同时55解压速度很快,I/O数据量扩大了一倍,非常适合于高速I/O设备的环境。根据实际应用场景及硬件环境,可通过采样方式确认某一列使用哪种压缩方法比较合适,从而提高整体性能。
- SQL改写
可通过人工改写SQL的方式的方式避免一些性能问题,例如limit优化:
Select * from
(select * from t1
union all
select * from t2
union all
select * from t3
) as tmp
limit 10;
可以通过手工改写进行优化,如:
Select * from
(
(select * from t1 limit 10)
union all
(select * from t2 limit 10)
union all
(select * from t3 limit 10)
limit 10
) as tmp
limit 10;
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。