数据库基础服务
HHDB Server支持MySQL原生通讯协议,支持数据定义、数据操作、分区表、数据库管理语句、事务、锁、字符集与校对集等常用数据库基础服务。其中在数据操作中解决了跨库查询和跨库数据排序等难点问题。并支持强一致事务与跨库死锁检测。
数据定义
支持常用的数据定义操作语句,如:CREATE/DROP/ALTER/RENAME/TRUNCATE等。同时支持关联已有分片规则直接CREATE业务表,而无需在管理平台上对表事先进行定义。
数据操作
跨节点SQL
HHDB Server支持跨数据节点的SQL操作,如:
- 跨节点INNER/LEFT/RIGHT JOIN
- 跨节点的组合JOIN及带括号JOIN
- 跨节点聚合函数
- 跨节点分组+HAVING+排序+分页
- 跨节点UNION/UNION ALL查询
修改分片字段值
HHDB Server允许在不改变分片字段值路由(即修改后的分片字段值与修改前的值路由到相同的数据节点)的前提下,update水平分片表的分片字段值。
透明全局自增序列
HHDB Server可保证具有AUTO_INCREMENT属性的列在各个数据节点上全局自增。透明全局自增序列使用方法与MySQL的AUTO_INCREMENT相同,目前透明全局自增序列可保证该字段全局有序递增,但是不保证序列值的连续性。
全局唯一约束
HHDB Server支持全局唯一约束,可保证启用了此功能时拥有唯一约束(UNIQUE、PRIMARY KEY)的列在所有数据节点上全局唯一。若启用相关功能还可以做到当SELECT查询语句中不包含分片字段但包含唯一约束字段时,同样可以定位单一节点。目前支持全局唯一约束设置到表级别。
分区表
HHDB Server支持数据库分区表(PARTITION)相关操作,如:CREATE PARTITION TABLE、ALTER PARTITION、INSERT PARTITION、UPDATE PARTITION、SELECT PARTITION、DELETE PARTITION。
数据管理语句
支持数据库管理语句SHOW、DESC、USE、KILL以及部分会话级别SET语句。
触发器
支持在单库环境下使用触发器功能且支持触发器的备份与恢复。
子查询
支持各类复杂场景下的子查询功能。
事务与锁
事务
- 支持显式事务与隐式事务。
- 支持弱一致事务与强一致事务。
- 支持会话级事务隔离级别:READ COMMIT、REPEATABLE READ、SERIALIZABLE。
- 支持定义SAVEPOINT,以及设置事务提交回滚属性,如:COMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE]、ROLLBACK [WORK] [AND [NO] CHAIN] [[NO] RELEASE]。
强一致(XA)事务
HHDB Server利用外部 XA 事务可解决跨数据节点事务场景中数据的强一致性问题,即要么所有数据节点的事务都COMMIT,要么所有数据节点都ROLLBACK;支持REPEATABLE READ、SERIALIZABLE隔离级别且隔离级别功能表现和单机存储节点相同。计算节点在开启XA事务功能后,对于应用程序命令操作是透明的,对SQL命令、事务流程没有任何改动要求,可像普通事务一样使用。
跨节点死锁检测
在关系集群数据库系统中,若死锁发生在两个数据库节点间时,死锁检测机制无法检测到这种跨实例死锁。在HHDB Server关系集群数据库系统中,计算节点跨库死锁检测可检测多个数据库节点间的死锁并回滚开销最少的事务。
字符集与校对集
- HHDB Server支持常用字符集,如utf8、gbk、latin1、utf8mb4、gb18030、binary、big5、ascii、gb2312。
- HHDB Server支持常用校对集,如utf8_general_ci、utf8_bin、latin1_swedish_ci、latin1_bin、gbk_chinese_ci、gbk_bin、utf8mb4_general_ci、utf8mb4_0900_ai_ci、utf8mb4_bin、gb18030_chinese_ci、gb18030_bin、binary、big5_chinese_ci、big5_bin、ascii_general_ci、ascii_bin、gb2312_general_ci、gb2312_bin。
用户权限体系
HHDB Server兼容MySQL的用户权限体系,支持全局权限、库权限、表级权限的多维度配置。此外HHDB Server用户体系中还增加了用户表级拒绝权限功能,方便用户快速为业务系统配置一套高安全性的权限体系。目前对用户权限的配置可以通过管理平台进行操作。
拆分算法
HHDB Server提供七种数据拆分算法,满足用户大部分场景的拆分需求。以下是七种拆分算法的具体介绍:
表类型
HHDB Server提供四种表类型供用户选择,用户可以根据实际业务场景选择合适的数据库表类型。以下是关于四种表类型的具体介绍:
DBLINK
支持与MySQL、Oracle或其他流行数据库建立通信连接,执行跨不同类型的数据库的数据增删改查操作。此外还可使用DBLINK功能读取外部文件数据,并支持内部表JOIN外部文件的SELECT、INSERT、UPDATE、DELETE语句。
兼容Oracle语法
HHDB Server不仅提供常用Oracle数据类型的自动转化,例如:字符串/字符、数字、日期、XML、LOB、ROWID等,同时也兼容部分常用的Oracle的函数转化及Sequence、MERGE INTO、 wm_concat、START WITH CONNECT BY等,甚至在部分DDL和DML上也实现了兼容,例如:COMMENT、INSERT ALL/FIRST …等。方便了用户由Oracle迁移至HHDB Server时,极大的减少其业务代码的修改量。