高斯数据库开发使用备忘
日常开发中碰到的问题,备忘
部分影响性能
部分影响稳定性
部分影响使用
- 高斯目前使用的
AStore
存储引擎,有10分钟的自动调度扫描,当碰到业务逻辑执行时,会退让不执行。 - 高斯目前主推的
AStore
,在生产环境验证下,死元组/活动元组需要特别重视,量大情况下,会严重影响性能。 - 高斯目前对
Oracle
语句的接受兼容度确实较高,基本不需要大改语句。但性能退化严重。比如start with
语法在Oracle
是秒级及秒级以内的,而在GaussDB
下,是小时级别的。 - 高斯目前监控较弱,需要项目组额外监控。
- 高斯目前备份较弱,无法满足生产实际需要,当前备份一次的时间完全不可接受。
- 高斯承袭
PostgreSQL
,纯JDBC
模式下,若不开启autoCommit=false
,ResultSet
数据将一次性下发,容易触发OOM
。必须主动设置autoCommit=false
。为性能考虑,建议设置合理的fetchSize
,达到更好性能。 - 高斯的
SQL
中,若存在某些特定的where ... in ...
,有概率触发主从切换。 - 高斯的
SQL
中,若存在某些特定的group by
,有概率触发主从切换。 - 高斯的
C++
库,存在计算精度问题,需要注意。 - 高斯的
SQL
中,若存在count
,一般而言会非常慢。慎用。这一点对MySQL
系也适用。 - 高斯在
AStore
存储引擎下,执行计划中若显示seq scan
,需要小心。顺序扫描等价于其他数据库的全表扫描。 - 高斯的
SQL
中,若存在数据类型不一致的比对或join
,将极大影响执行速度。 - 高斯承袭
PostgreSQL
,两会话一个truncate
一个select
,将有概率互锁。(见 PostgreSQL系(GaussDB、KingBase…) 在 SELECT 和 TRUNCATE之间lock冲突 )