阿里云DRDS数据库调研

来源:互联网 发布:胡公子的淘宝店 编辑:程序博客网 时间:2024/06/06 00:00
分布式关系型数据库服务(Distributed Relational Database Service , 简称 DRDS )专注于解决单机关系型数据库扩展性问题,具备轻量(无状态)、灵活、稳定、高效等特性,是阿里巴巴集团自主研发的中间件产品。DRDS 兼容 MySQL 协议和语法,支持分库分表、平滑扩容、服务升降配、透明读写分离和分布式事务等特性,具备分布式数据库全生命周期的运维管控能力。
DRDS主要应用场景在大规模在线数据操作上,通过贴合业务的拆分方式,将操作效率提升到极致,有效满足用户在线业务对关系性数据库要求。
DRDS 主要解决了以下问题:
单机数据库容量瓶颈: 随着数据量和访问量的增长,单机数据库会遇到很大的挑战,依赖硬件升级并不能完全解决问题。
单机数据库扩展困难:传统数据库容量扩展往往意味着服务中断,很难做到业务无感知或者少感知。
传统数据库使用成本高: 当业务数据和访问量增加到一定量时,传统数据库需要依赖特定的高端存储和小型机设备,成本曲线快速上升。

本文主要对 DRDS 涉及的专有名词及术语进行定义和解析,方便您更好地理解相关概念并使用 DRDS。
DRDS
DRDS(Distributed Relational Database Service)是阿里巴巴自主研发,高度兼容 MySQL 协议和语法的分布式关系型数据库服务中间件。
DRDS 服务节点(DRDS Server)
DRDS Server 是 DRDS 核心组件,提供 SQL 的解析、优化、路由和结果归并。
DRDS 实例
DRDS 实例是由一组 DRDS Server 节点组成的分布式数据库服务集群。各服务节点无状态,同时处理 SQL 请求。
DRDS 实例规格
DRDS 实例规格是 DRDS 实例处理能力体现,按照 CPU 和 内存提供不同的规格的实例,规格越高处理能力越强。如 4Core8G 和 8Core16G,在标准的 DRDS 测试场景下,后者的处理能力是前者的两倍。
实例升降配
DRDS 可以通过改变实例规格来改变处理能力,提升实例规格称为升配,降低实例规格称为降配。
水平拆分
水平拆分是将一个单机数据库拆分为多个物理分库,将数据库中的表数据按照拆分规则,拆分为多个物理分表,存储到不同的数据库分库上的过程。
拆分规则
水平拆分过程中将逻辑数据库表拆分为多个物理分表规则称为拆分规则。
拆分键
水平拆分过程中,生成拆分规则的数据库字段称为拆分键。
分库
DRDS 水平拆分后,逻辑数据库数据存储在多个物理存储实例上,每个存储实例上的物理库称为分库。
分表
DRDS 水平拆分后,每一个分库上的物理数据表称为分表。
逻辑 SQL
由应用端发送到 DRDS 的 SQL 称为逻辑 SQL。
物理 SQL
由 DRDS 对逻辑 SQL 进行解析之后发送到 RDS 上执行的 SQL 称为物理 SQL。
透明读写分离
DRDS 的单个存储实例节点遇到访问瓶颈时,可通过增加只读实例来分担主实例的压力。DRDS 的读写分离功能不需要修改任何应用代码,称为透明读写分离。
非拆分模式
DRDS 支持不进行数据库水平拆分而仅通过 DRDS 提供的透明读写分离来扩展数据库的服务能力。这种模式称为非拆分模式。
平滑扩容
DRDS 可通过增加存储实例节点完成数据库的扩容。扩容不影响原有数据的正常访问,称为平滑扩容。
小表广播
DRDS 将一些数据量小且更新频度不高的数据表存储为单表模式,这些数据表称为小表。通过数据同步将小表复制到与之 JOIN 的分库上进而提升 JOIN 效率的解决方案称为“小表广播”或者“小表复制”。
全表扫描
数据库拆分模式下,如果 SQL 语句中没有指定拆分键,DRDS 将在所有分表上执行 SQL 并归并结果返回,这个过程称为全表扫描。为避免影响性能,用户应尽量避免全表扫描。
全局唯一数字序列(DRDS Sequence)
DRDS 全局唯一数字序列(64位数字,对应 MySQL 中 BIGINT 类型)的主要目标是为了保证所定义唯一字段中的数据的全局唯一(比如 PRIMARY KEY,UNIQUE KEY 等)和有序递增。
DRDS 自定义注释(DRDS Hint)
DRDS 提供的自定义注释,用于指定一些特殊行为,通过相关的语法影响 SQL 的执行方式,从而对 SQL 进行特殊的优化。
阅读全文
0 0