云数据库是 CloudBase 提供的核心功能之一。
目前云数据库提供了两种类型的数据库:文档型数据库和 MySQL 型数据库。在实际使用时,可以根据需要选择使用一种或两种同时使用。
这两种类型的数据库均为全 Serverless 架构的云原生数据库。开通即可使用,支持按实际计算和存储资源使用量收取费用。
另外,除云开发本身提供的数据库外,同时也支持了对接用户自有的 MySQL 类型数据库。在自有数据库本身通过公网可访问的情况下,云开发提供了对接和使用此类数据库的能力。
云数据库(MySQL 型)
在一个云开发环境中,有且仅有一个云数据库(MySQL 型)实例,此实例可以和其他数据库实例共存。
在 MySQL 型数据库中,包含如下概念:
表(Table)
表(Table)是 MySQL 类型数据库中的基本组成单元,用于存储数据。表由行(Rows)和列(Columns)组成,行代表表中的每条记录,列代表记录中的字段。表具有唯一的名称,用于标识和区分不同的表。
MySQL 类型数据库中表的概念,与文档型数据库中集合的概念类似。
行(Rows)
MySQL 类型数据库中,表中的行(Rows)代表表中的每条记录,每行包含了一组数据,每个数据对应表中的一个列。
MySQL 类型数据库中行的概念,与文档型数据库中记录的概念类似。
列(Column)
MySQL 类型数据库中,表中的列定义了表中存储的数据的结构。每列具有一个名称和数据类型,数据类型定义了该列可以存储的数据的类型,如整数、字符串、日期等。
当前提供的 MySQL 版本为8.0。当前的云数据库(MySQL 型),未对外提供可直接访问的 IP、端口等信息。针对数据库的管理,可使用数据库管理工具(DMC),在调用数据库时,除通过数据模型方法读写数据外,也额外提供了数据库的原生查询命令,可用于执行 SQL 语句,获得和原生数据库的相同使用体验。
数据库实现及特性
当前云数据库(MySQL 型),使用了腾讯云的 TDSQL-C MySQL 版作为底层数据库的具体实现。TDSQL-C MySQL 版(TDSQL-C for MySQL)是腾讯云自研的新一代云原生关系型数据库,融合了传统数据库、云计算与新硬件技术的优势,为用户提供具备极致弹性、高性能、海量存储、安全可靠的数据库服务。当前数据库采用了存算分离的模式,在云开发环境所在地域的随机单可用区内部署实例。
当前数据库的计算节点会跟随请求压力自动扩缩,同时也会在一段时间内没有请求的情况下自动休眠以节省费用。数据库计算节点的休眠特性可以在数据库设置中进一步配置修改;如果关闭休眠,可以避免计算节点的冷启动导致初次请求响应慢,但是会产生持续费用,可以根据实际需要选择配置。
自有 MySQL 数据库
在云开发环境中,可以创建多个自有 MySQL 数据库连接配置,每一个连接配置对应了一个 MySQL 的 DB。
在创建自有 MySQL 数据库连接配置时,通常配置如下信息:
主机:MySQL 数据库所在服务器的域名或 IP 地址
端口:MySQL 数据库的端口号,默认为3306
数据库名:MySQL 数据库的名称
用户名:MySQL 数据库的用户名
密码:MySQL 数据库的密码
超时配置: 连接超时配置,默认5秒
连接参数:数据库连接参数支持字符集、语句缓存、读写超时时间、自动提交等参数,用以优化和控制数据库连接的行为
在使用自有 MySQL 数据库时,可以在一个库中创建多个表及对应的数据模型,也可以在不同库中创建表及模型。但是在数据模型配置关联关系时,关联模型不可跨不同的数据库,即在云数据库(文档型)、云数据库(MySQL 型)、不同的自有数据库的 DB 间,无法配置关联关系。
IP 白名单
暴露在公网的自建 MySQL 数据库通常需要配置 IP 白名单以防止非法访问。可以将如下 IP 加入 IP 白名单以放通云开发数据模型组件的访问,添加时需要全部添加到白名单中:
175.24.211.44,
175.24.212.162,
175.24.213.48,
175.24.214.104,
175.24.214.93,
49.234.25.245,
49.234.27.58,
49.234.3.160,
49.234.34.31,
49.234.35.33,
数据库选型
当前在云开发提供了 3 种数据库的情况下,如何选择哪种数据库使用呢?可以参考如下表格进行数据库选择:
|
云数据库(MySQL 型) | 结构化数据模型,支持标准的 SQL 语句访问方式 |
自有 MySQL 数据库 | 已有的数据可以直接访问并使用,自有数据库可以更灵活可控 |