8a数据库(单机)有以下四种常用优化手段:

  1. 索引

8a数据库支持Hash Index和CP_DIC两种索引,不同的索引可以用于不同场景的优化。

1)Hash Index通常可以用于解决等值查询的定位效率,特别是对以单表精确查询为主的应用场景尤为适合,如电信业务中的并发话单查询等(特别是内存基本充足的场景)。但要注意:hash index只能解决查询定位问题,对物化性能没有帮助。

2)CP_DIC索引其实是一种压缩字典,其通过大幅减少查询中的I/O量来提升查询性能,对distinct值少的列尤为适用,如国家、民族、性别等。

需要注意的是,索引是一种有损的优化手段,使用索引通常会带来维护的成本,会影响数据加载及DML操作的性能,实际使用时需根据具体需求而定。

  1. 数据排序

可以根据应用场景的实际需求是数据按照某列有序,有序的数据经常可以使智能索引获得更好的过滤效果,同时数据有序通常可以一定程度上解决多列物化离散I/O的问题,使整体查询性能大大提升。

  1. 压缩

8a目前提供的压缩算法组合包括:31和55两种,默认是55压缩。其中31针对数值和字符采用了不同的压缩算法,压缩比是55的一倍,但同时55解压速度很快,I/O数据量扩大了一倍,非常适合于高速I/O设备的环境。根据实际应用场景及硬件环境,可通过采样方式确认某一列使用哪种压缩方法比较合适,从而提高整体性能。

  1. 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;


GBase数据库
1 声望2 粉丝

GBase数据库知识分享