1. 何为LightDB

LightDB是恒生电子推出的同时支持在线事务处理与在线分析处理的融合型分布式数据库产品,具备SQL兼容性高 高安全性 容量弹性伸缩 金融级高可用 现代硬件融合 纯内存计算等核心特性,主要适用于对可用性 一致性要求较高的系统。它支持大部分 SQL 标准并且提供了许多现代特性:

  1. 主要iso sql,存储过程视图主外键索引触发器外关联cte分析函数聚合函数普通函数安全管理 等标准特性以及oracle扩展sql,如 connect byrownum 等;

  2. 分区表及声明式分区

  3. 并行执行

  4. hint优化器提示和执行计划管理干预优化器选择执行计划

  5. 多存储引擎(如行存、列存)、多索引结构(如b树索引,哈希索引,倒排索引)

  6. 匿名块

  7. 定时任务

  8. awr报告分析实例性能

  9. 内置高可用实现 自动降级和主备切换,支持延迟复制

  10. 客户端批量执行文件

  11. 逻辑备份物理备份增量备份

  12. 回收站功能

  13. 多进程架构,单一业务进程异常不影响实例整体可用性

  14. 兼容 oracle pl/sql package

  15. 兼容 oracle pro*c

  16. 支持分布式架构,协调节点+计算节点,实现OLTP(不支持 oracle pl/sql pro*c )下的水平扩展,单一分布式实例10万级tps

  17. 同构和异构 dblink

  18. c/java/.net/python通过jdbc odbc c接口访问数据库

  19. 包含完整的管理界面,一站式监控管理平台

  20. gmssl、透明数据加密、rls、授权&认证、根据ip限制访问、审计等

  21. 提供轻量级客户端,包含sql命令行、导入导出客户端、sdk

  22. 优化器和算子支持 nest loopmerge join , hash join连接方式,支持谓词下推、子查询合并、分区剪除、索引扫描、仅索引扫描、并行执行&聚合等

  23. 支持表空间,单独存储索引和数据表

  24. 支持外部表

  25. 包含系统视图查询各种内部信息和状态,包含主要oracle兼容视图如dba/all/user_*

  26. 包含oracle到lightdb迁移工具,支持数据和对象定义以及存储过程、视图、触发器

  27. 支持增量检查点,长时间(连续4小时)高负载(80%)运行低抖动(10%以内)

  28. 不支持windows、unix、freebsd等非linux系统

同样,LightDB 可以用许多方法扩展,比如自定义新的数据库对象:

  1. 数据类型

  2. 函数

  3. 操作符

  4. 聚集函数

  5. 过程语言

  6. 自定义索引类型

分布式版本的主要特性包括:

  1. 支持在线扩缩容

  2. 支持并行查询

  3. 支持分布式事务

  4. 支持聚合下推

  5. 支持从任意节点执行DQL,DML

  6. 支持单机版的大部分SQL特性

  7. 支持hint

  8. 支持多租户的场景

  9. 支持实时分析场景OLAP

  10. 支持高性能的CURD OLTP

  11. 分片表管理简单

  12. 兼容单机版大部分SQL

  13. 支持分布式死锁检查

  14. 支持复制表

  15. merge

  16. insert all

  17. (+) 外关联

分布式版本的限制:

  1. 不支持 INSERT with Sublink

  2. 不支持某些复杂查询如子查询和主查询同一个表,关联字段为非分片字段

  3. 分布式支持hash,range,append分布,但对range,append 支持的不好

  4. 不支持笛卡尔积

  5. 不支持修改分布键值

  6. 不支持merge

  7. 不支持rownum