如何创建分布式数据库TDSQL?

分布式数据库TDSQL的创建

分布式数据库TDSQL如何创建

一、

TDSQL(Tencent Distributed SQL)是由腾讯云提供的一种分布式数据库解决方案,它支持MySQL版和PostgreSQL版,本文将详细介绍如何在腾讯云上创建一个TDSQL实例,包括实例的配置、购买步骤以及一些高级功能如序列(Sequence)的使用。

二、创建TDSQL实例

登录控制台

您需要登录到腾讯云的控制台,访问[腾讯云官网](https://cloud.tencent.com/),点击右上角的“控制台”按钮,输入您的账号和密码进行登录。

进入TDSQL控制台

在控制台首页,找到“数据库”菜单,点击“TDSQL”,进入TDSQL控制台后,您可以看到实例列表页面。

创建实例

3.1 计费模式选择

按量计费:适用于业务量有瞬间大幅波动的场景。

分布式数据库TDSQL如何创建

包年包月:适用于业务量有较稳定的长期需求。

3.2 地域选择

选择一个靠近您业务部署地点的地域,以减少网络延迟,注意,不同地域的云产品内网不通,购买后不能更换。

3.3 网络配置

建议选择与您的云服务器相同的私有网络,以便通过内网连接云服务器和数据库。

3.4 实例类型选择

集群版:由多个节点构成,提供高性能高可用的数据库服务,适用于企业生产环境。

分布式数据库TDSQL如何创建

基础版:由单个节点构成,费用较低,但不具备高可用能力,仅适用于个人用户学习体验产品功能。

3.5 集群架构选择

对等架构:计算层SQL Engine与数据层TDStore合并为一个物理节点中,减少硬件节点数量和跨节点通信,从而降低成本并提高性能。

分离架构:计算层SQL Engine与数据层TDStore分别在不同的物理节点中。

3.6 其他配置

分片数量/规格/硬盘:建议分片数量选择2、4、8,否则会导致数据倾斜的问题,分片配置请参见分片配置文档。

所属项目:选择数据库实例所属的项目,缺省设置为默认项目。

:便于分类管理实例资源。

安全组:安全组创建与管理请参见云数据库安全组文档。

实例名:可选择创建后命名或立即命名。

实例ID长度兼容:支持36位的实例ID。

支持字符集:支持UTF8、LATIN1、GBK、UTF8MB4、GB18030字符集。

表名大小写敏感:敏感(lower_case_tables = 0)、不敏感(lower_case_tables = 1),该参数为初始化参数,数据库初始化完成后无法修改。

开启强同步:支持强同步(可退化)、异步,详细介绍请参见强同步文档。

3.7 完成购买

确认所有配置无误后,单击“立即购买”,支付完成后,返回实例列表,待实例状态变为运行中,即可进行后续操作。

三、创建数据库和表

创建数据库

在TDSQL控制台的集群列表中,找到目标集群,单击集群ID或操作列的管理,进入集群管理页面,在集群管理页面,选择数据库管理页,单击创建数据库,在弹出的对话框中,配置如下参数后,单击确定:

参数 说明
数据库名 输入数据库名,由大小写字母、数字、中划线(-)、下划线(_)组成,字母开头,字母或是数字结尾,最长64字符。
支持字符集 设置数据库支持的字符集,字符集介绍可参见MySQL官方文档。
排序规则 设置数据库的排序规则,排序规则介绍可参见MySQL官方文档。
账号授权 单击添加,然后选择授权账号、授权给账号的权限、主机信息,也支持删除该授权列记录。
备注 为新建的数据库备注,最多支持输入256个字符。

创建表

TDSQL分布式实例支持创建分表、单表和广播表,分表即自动水平拆分的表(Shard表),水平拆分是基于分表键采用一致性Hash方式,根据计算后的值分配到不同的节点组中的一种技术方案,可以将满足对应条件的行将存储在相同的物理节点组中,这种场景称为组拆分(Groupshard),可以迅速提高应用层联合查询等语句的处理效率,TDSQL支持LIST、RANGE、HASH三种类型的一级分区,同时支持RANGE、LIST两种格式的二级分区。

创建一级range| list分区表语法:

CREATE TABLE [IF NOT EXISTS] tbl_name    [(create_definition)]    [local_table_options]TDSQL_DISTRIBUTED BY range|list (column_name) [partition_options]create_definition: {    col_name column_definition  | {INDEX | KEY} [index_name] [index_type] (key_part,...)      [index_option] ...  | [INDEX | KEY] [index_name] [index_type] (key_part,...)      [index_option] ...  | [CONSTRAINT [symbol]] PRIMARY KEY      [index_type] (key_part,...)      [index_option] ...  | [CONSTRAINT [symbol]] UNIQUE [INDEX | KEY]      [index_name] [index_type] (key_part,...)      [index_option] ...}column_definition: {    data_type [NOT NULL | NULL] [DEFAULT]      [AUTO_INCREMENT] [UNIQUE [KEY]] [[PRIMARY] KEY]      [COMMENT 'string']      [COLLATE collation_name]      [COLUMN_FORMAT {FIXED | DYNAMIC | DEFAULT}]      [ENGINE_ATTRIBUTE [=] 'string']  | data_type      [UNIQUE [KEY]] [[PRIMARY] KEY]      [COMMENT 'string']}key_part: {col_name [(length)]} [ASC | DESC]index_type:USING {BTREE}index_option: { index_type | COMMENT 'string'}[local_table_options]Local_table_option: {AUTO_INCREMENT [=] value  | [DEFAULT] CHARACTER SET [=] charset_name  | [DEFAULT] COLLATE [=] collation_name  | COMMENT [=] 'string'  | ENGINE [=] engine_name  | ROW_FORMAT [=] {DEFAULT | DYNAMIC | FIXED | COMPRESSED | REDUNDANT | COMPACT}  | STATS_AUTO_RECALC [=] {DEFAULT | 0 | 1}  | STATS_PERSISTENT [=] {DEFAULT | 0 | 1}  | STATS_SAMPLE_PAGES [=] value)}partition_options:    PARTITION BY        | RANGE{(expr)}        | LIST{(expr)}    [(partition_definition [, partition_definition] ...)]partition_definition:    PARTITION partition_name        [VALUES            {LESS THAN {(expr | value_list) | MAXVALUE}            |            IN (value_list)}]        [[STORAGE] ENGINE [=] engine_name]        [COMMENT 'string']

四、使用Sequence

在TDSQL分布式数据库中,Sequence用于生成全局唯一的递增数值,Sequence关键字和MariaDB/Oracle兼容,但是保证分布式全局递增且唯一,具体使用如下:

创建Sequence

CREATE TDSQL_SEQUENCE sequence_name
[START WITH n]
[{TDSQL_MINVALUE | TDSQL_NOMINVALUE} n | TDSQL_NOMINVALUE]
[{TDSQL_MAXVALUE n | TDSQL_NOMAXVALUE}]
[TDSQL_INCREMENT BY n]
[{TDSQL_CYCLE | TDSQL_NOCYCLE}]
[{TDSQL_CACHE | TDSQL_NOCACHE} n];

示例:

create tdsql_sequence test.s1 start with 12 tdsql_minvalue 10 maxvalue 50000 tdsql_increment by 5 tdsql_nocycle;
create tdsql_sequence test.s2 start with 12 tdsql_minvalue 10 maxvalue 50000 tdsql_increment by 1 tdsql_cycle;

删除Sequence

DROP SEQUENCE sequence_name;

示例:

drop tdsql_sequence test.s1;

查询Sequence

SHOW CREATE SEQUENCE sequence_name;

示例:

show create sequence test.s1;

使用Sequence获取下一个数值

SELECT tdsql_nextval('sequence_name');
SELECT NEXT VALUE FOR sequence_name;

示例:

select next value for test.s2;

获取上一次的值以连接相关数据

如果之前没有用nextval命令获取过数据,数值将返回为0。

SELECT tdsql_lastval('sequence_name');
SELECT PREVIOUS VALUE FOR sequence_name;

示例:

select last value for test.s2;

设置下一个序列数值

ALTER SEQUENCE sequence_name RESTART [WITH] n;

示例:

alter sequence test.s1 restart with 100;

五、相关问题与解答栏目

问题1:如何选择适合的TDSQL实例类型?

答:选择适合的TDSQL实例类型主要取决于您的业务需求和预算,如果您的业务需要高性能和高可用性,建议选择集群版实例;如果您只是个人用户学习体验产品功能,可以选择基础版实例,还需要考虑计费模式(按量计费或包年包月)、地域、网络配置等因素。

问题2:如何优化TDSQL数据库的性能?

答:优化TDSQL数据库的性能可以从以下几个方面入手:选择合适的实例类型和配置、合理设计数据库架构(如分片、分区等)、优化SQL查询语句、调整数据库参数(如缓存大小、连接数等)、定期维护和监控数据库等,具体优化措施需要根据您的业务场景和数据库实际情况来制定。

小伙伴们,上文介绍了“分布式数据库TDSQL如何创建”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。

原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/739154.html

Like (0)
Donate 微信扫一扫 微信扫一扫
K-seoK-seo
Previous 2024-12-16 09:48
Next 2024-12-16 09:50

相关推荐

  • ecshop本地安装数据库怎么填

    在 ECShop 本地安装时,数据库信息填写通常包括以下内容:,,1. **数据库主机**:一般填写 localhost,表示本地服务器。,2. **数据库用户名**:填写你为 MySQL 数据库创建的用户名,通常是 root 或自定义用户名。,3. **数据库密码**:填写对应的数据库用户密码。,4. **数据库名称**:填写你要使用的数据库名,可以新建一个数据库或者使用已有的数据库。,5. **表前缀**:如果需要,可以修改表前缀,默认是 ecs_,避免与其他应用冲突。,,,数据库主机:localhost,数据库用户名:root,数据库密码:你的密码,数据库名称:ecshop,表前缀:ecs_,,请确保你的 MySQL 服务正在运行,并且提供的数据库信息是正确的。

    2025-03-17
    03
  • ecshop链接数据库代码

    ``php,$db_host = "localhost";,$db_user = "username";,$db_pass = "password";,$db_name = "ecshop";,$conn = mysqli_connect($db_host, $db_user, $db_pass, $db_name);,if (!$conn) {, die("Connection failed: " . mysqli_connect_error());,},``

    2025-03-18
    01
  • 服务器如何高效访问本地数据库?

    要实现服务器访问本地数据库,需要进行一系列的配置和准备工作,以下是详细的步骤:1、安装和配置数据库:确保在本地计算机上安装并配置了所需的数据库管理系统(如MySQL、PostgreSQL等),安装过程中需要设置数据库的根密码,并根据需求创建新的数据库用户及分配适当权限,2、修改数据库配置文件:大多数数据库默认只……

    2024-11-26
    07
  • ecshop本地安装数据库

    将ECShop程序上传到服务器,创建数据库并导入数据,配置数据库连接信息后即可完成本地安装。

    2025-03-17
    02
  • 如何有效使用big.js进行大数计算?

    Big.js 使用指南Big.js 是一个用于任意精度十进制算术的 JavaScript 库,它支持大数和高精度运算,非常适合财务计算和需要高精度的场景,本文将详细介绍如何使用 Big.js 进行各种数学操作,1. 安装 Big.js你需要在你的项目中安装 Big.js,你可以使用 npm 或 yarn 来安装……

    2024-12-02
    037
  • asp虚拟空间租用怎么搭建的

    购买ASP虚拟空间后,通过FTP上传你的网站文件到虚拟主机,然后在虚拟主机管理面板绑定你的域名即可。

    2024-05-11
    095

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

免备案 高防CDN 无视CC/DDOS攻击 限时秒杀,10元即可体验  (专业解决各类攻击)>>点击进入