TDSQL水平扩容实践案例

本文介绍了TDSQL中选择分区键的原则,强调根据业务特性如用户ID、玩家ID等来实现数据均衡分布。同时,讨论了何时进行数据库扩容,通常依据磁盘使用率、SQL请求量和CPU利用率等指标。分享了云上集群实例,并在Q&A环节解答了关于分区表、数据一致性及两阶段提交的相关问题。TDSQL是腾讯的金融级分布式数据库产品,广泛应用在多个行业。
摘要由CSDN通过智能技术生成

实践:如何选择分区键

file

刚才我们说,我们希望在创建表的时候业务参与进行表结构设计的时候,能考虑一下分区键的选择。如何选择分区键呢?这里根据几种类型来简单介绍一下。

如果是面向用户的互联网应用,我们可以用用户对应的字段,比如用户ID,来做分区键。这样保证在拥有大量用户时,可以根据用户ID将数据拆分到各个后端节点。

游戏类应用,业务的逻辑主体是玩家,我们可以通过玩家对应的字段;电商应用的话,可以根据买家或者卖家的一些字段来作为分区键。物联网的则可以通过比如设备的ID作为分区键。选择分区键总体来说就是要做到对于数据能比较好地做进行拆分,避免最后出现漏点。也就是说,通过这个分区键选择这个字段,可以让数据比较均衡地分散到各个节点。访问方面,当有比较多SQL请求的时候,其实是带有分区键条件的。因为只有在这种情况下,才能更好地发挥分布式的优势——如果是条件里面带分区键,那这条SQL可以直接录入到某一个节点上;如果没有带分区键,就意味着需要把这条SQL发到后端所有节点上。

这个大家可以看到,如果水平扩容到更多——从一个节点扩到256个节点,那某一条SQL写不好的话,可能需要做256个节点全部的数据的聚合,这时性能就不会很好。

总结来说,我们希望业务在创建表,在设计表结构的时候尽量参与进来。因为不管是聚合函数或者是各种事务的操作,其实对业务基本上属于无感知,而业务这时参与则意味着能够换来很大的性能提升。</

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值