tencent cloud

TDSQL MySQL 版

公告
告警升级公告
产品简介
产品概述
产品优势
应用场景
地域和可用区
InnoDB 引擎
购买指南
计费概述(InnoDB)
产品定价(InnoDB)
购买升级
退费说明
欠费说明
备份空间计费
快速入门
InnoDB 引擎
操作指南(InnoDB)
实例管理
灾备/只读实例
修改网络
账号管理
安全管理
慢查询分析
备份与回档
数据迁移
数据库审计
实践教程
从单机实例导入到分布式实例
从分布式实例导入到分布式实例
选择实例配置和分片配置
安全白皮书
平台侧安全设计
租户侧安全功能
开发指南
InnoDB 引擎
API 文档
History
Introduction
API Category
Security Group APIs
Other APIs
Making API Requests
TDSQL APIs
Data Types
Error Codes
常见问题
InnoDB 引擎相关
通用参考
强同步性能对比数据
词汇表
联系我们

使用常见问题

PDF
聚焦模式
字号
最后更新时间: 2024-01-06 12:33:19

如何选择实例规格?

使用 TDSQL MySQL 版做功能性测试,且对性能没有特别要求:2个分片,每个分片配置为:内存/磁盘:2GB/25GB。
业务发展初期,总数据规模较小但增长快的选型:2个分片,每个分片配置为:内存/磁盘:16GB/200GB。
业务发展稳定,根据业务实际情况选型:4个分片,每个分片配置等于:当前业务峰值 * 增长率 / 4。 更多关于实例规格,请参见 TDSQL MySQL 版实例及分片配置

TDSQL MySQL 版与 传统 MySQL 语法之间的区别有哪些?

TDSQL MySQL 版目前版本不能通过命令行进行用户权限相关的设置,需要登录 控制台 进行操作。 TDSQL MySQL 版目前版本暂不支持自定义函数、视图、触发器、外键等特性。 对 MySQL 的语法兼容详情,请参见 使用限制

分表键有何作用?

使用分表,在执行操作 select 时,建议带上 shardkey 字段,proxy 根据该字段的 hash 值直接将 SQL 请求路由至对应的数据库实例进行处理;否则就需要发送给集群中所有的数据库实例执行,然后 proxy 根据数据库返回的结果集进行聚合,影响执行效率。
使用分表,在执行操作 insert/replace 时,字段必须包含 shardkey,否则会拒绝执行该 SQL,因为 proxy 不知道将该 SQL 发往哪个后端数据库。
使用分表,在执行操作 delete/update 时,为安全考虑,执行该类 SQL 时,必须带有 where 条件,否则拒绝执行该 SQL 命令。

如何选择分表键?

分表键是在水平拆分过程中用于生成拆分规则的数据表字段,必须在建表时指定好。TDSQL MySQL版 建议分表键尽可能找到数据表中的数据在业务逻辑上的主体,并确定大部分(或核心的)数据库操作都围绕这个主体的数据进行,方可使用该主体对应的字段作为拆分键,进行分表(该分表方案名为 Group-Shard)。如下图所示:

按组分表方案可以确保不同分表的某些关联数据和复杂的业务逻辑运算,可以聚合到一个物理分片内。例如,某电商平台订单表和用户表都是基于用户维度(UserID)拆分,平台就很容易通过联合查询(不会存在跨节点 join,或分布式事务)快速计算某个用户近期产生了多少订单。
一些典型选择拆分键的应用场景如下:
面向用户的互联网应用,是围绕用户维度来做各种操作,那么业务逻辑主体就是用户,可使用用户对应的字段作为拆分键。
电商应用或 O2O 应用,是围绕卖家/买家维度来进行各种操作,那么业务逻辑主体就是卖家/买家,可使用卖家/买家对应的字段作为拆分键。但请注意,某些情况下几个超大卖家占到绝大多数交易额,会导致某几个分片的负载和压力明显高于其他分片。
游戏类的应用,是围绕玩家维度来做各种操作,那么业务逻辑主体就是玩家,可使用玩家对应的字段作为拆分键。
物联网方面的应用,则是基于物联信息进行操作,那么业务逻辑主体就是传感器/SIM 卡,可使用传感器、独立设备、SIM 卡的 IMEI 作为对应的字段作为拆分键。
税务/工商类/社保的应用,主要是基于纳税人/法定代表人/居民的信息来开展前台业务,那么业务逻辑主体就是纳税人/法定代表人,可使用纳税人/法定代表人对应的字段作为拆分键。 以此类推,其它类型的应用场景,大多也能找到合适的业务逻辑主体作为拆分键的选择。但需要注意在选择分表键时有一定限制,详情参见 分表键选择限制

分表键能否更换?

一旦选择好分区字段(shardkey),就不能轻易更改。若需要修改一个表的分区字段,只能新建一个表。 若需要修改一个分表某一行中的 shardkey 值,需要先 insert 再 delete。直接操作 update 不能修改分区字段的值。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈