分布式数据库服务

简介

分布式数据库服务(DATABASE Service)是基于Mysql技术实现,通过多个Mysql单实例(非Mysql Cluster)构成的一种水平拆分、可平滑扩缩容、读写分离的分布式数据库服务。

产品特点

支持海量数据的分片 DBS底层自动实现对表的分片,保证每个片上的数据分布均匀,减轻每台数据库的读写压力,提升整体读写性能。

数据的自动路由 在分片的基础上,实现对数据读写的自动路由,并且对应用是透明的,应用不需要关心数据底层的物理分布,对应用就像操作一张表一样。

主从复制 对于每一个分库节点都有一主一从,系统自动实现对数据的主从复制。

读写分离 基于主从复制,支持对表的读写分离,只需简单设计是只读模式,读操作默认会在从库上执行。

高可用 基于主从复制,会对主库和从库进行监控,并在主库或者从库发生宕机的时候,系统自动进行主从切换,保证系统的稳定性。

简单易用 对于应用层只需要像配置普通的数据源一样,配置一个DBS的数据源,就可以使用。

使用限制条件

分区表,不推荐跨分区查询。(跨分区会执行串行全表扫描,性能很低) 不支持嵌套查询 不支持跨分片的分页 不支持跨分片的聚合函数 关联分区表表查询不超过3张 关联分区表建议使用同样分区规则 分区表不允许和非分区表关联 不建议在一次事务中操作多个分区 SDK中不支持使用DDL操作,建议使用DBS-MUI页面操作 不支持分片的热扩容

常见问题

Q:sql执行报错?
A:目前SDK只能支持一些常用的标准SQL,对于复杂的SQL不支持,具体的支持的SQL,请参看分布式数据库前台操作工具里的帮助,里面列出了支持的具体的SQL。

Q:数据源初始化失败?
A:请确认配置的服务信息正确,包括:用户名、密码、服务ID、SDK认证地址。

Q:刚插入的数据,指定从库读取,查询不到?
A:情况一:分布式数据库支持读写分离,但是请不要在同一事务中,写入之后,然后指定从读库进行读取,这时事务还未提交,从库还未同步,因此读取不到。情况二:主库写入操作提交后同步到从库有延迟。

Q:DBS是否出现不一致的情况,例如(事务提交过程中,数据库宕机)?
A: 分布式数据库采取的是弱事务一致性,在特殊情况下可能会出现数据不一致的情况(例如数据库事务提交过程中,数据库宕机)。建议申请分布式数据库服务的时候,勾选分布式事务。