暂无图片
TDSQL shardKey能自增吗?
我来答
分享
暂无图片 匿名用户
TDSQL shardKey能自增吗?

根据TDSQL文档,如果表设置了shardKey,那么insert数据时必须指定这个值。假如我有个用户表,(id auto_increment, name, age). primary key pk(id), shardkey=id,表的数据量后期可能很大,我想让主键自增,然后把主键作为shardkey,不知道在tdsql上是否可行啊?
每次直接insert (name, age) values(“qwe”, 10)就行了。
否则的话,我还需要一个额外的id生成器吗?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
暂无图片
腾讯云数据库

最佳实践就是你说的:自己搞一个业务主键,然后在插入的时候生成。

用name + age作为pk是bad practise,因为无法保证很多查询都是用这两个键来查,而且age这个字段是业务上会改变的(每年+1)。

而且从领域解耦的角度看,物理主键如果暴露到领域外,也可能变成一个技术债务

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
tdsql 中扁鹊都有哪些功能呢 ?突出的作用是什么?
回答 1
tdsql的扁鹊功能,可以帮我们进行会话分析,可以看到那哪些会话处于锁等待。对慢sql给出优化建议,帮我们找到无效的索引或冗余的索引。还可以看到我们的数据分布情况。还有历史sql分析,通过历史sql会
tdsql分布式事务死锁会自动解锁吗?
回答 2
会的,tdsql在请求锁后,会自动发起探索死锁机制,当发现死锁形成,会自动进行处理释放死锁
tdsql--sharekey 如果不是主键,因为我的主键是UUID,例如根据其他分片规则,例如时间,如何指定分片?
回答 1
可以把pk,shardkey做联合主键
在使用tdsql (noshard)的时候,select查询经常出现 锁超时的现象?
回答 1
从楼主描述看,select比较像是被元数据锁阻塞了,showvariableslike‘%lockwaittimeout%’;可以查看元数据锁和innodb锁等待的超时时间(lockwaittimeo
客户如果让我们做迁移到tdsql,对于客户现在的业务系统代码,改动工作量有哪些?改动的工作量大吗? 是否要重写业务代码
回答 1
这个取决于客户用的什么数据库,比方说客户使用的oracle,它里面可能遇到一些存储过程,和高级特性的话,这样改动还是蛮大的。
tdsql shardkey+range分区 在存储时如何实现 范围查询的时候如何实现?
回答 1
底层存储结构实际上是在每个分片里面会存储一个基础表多个子表(比如月份子表);如果查询没有带shardkey,则会拆分sql到多个分片上执行将结果汇总;每个分片中的sql查询如果涉及跨月场景时,需要打开
tdsql中处理复杂不能下推的SQl时,遇到大数据量时 proxy的内存如何管理和控制?
回答 1
proxy会把数据写入临时表;这种场景使用时要尽量避免
tdsql的实例 简单来说是不是 (mysql+agent)?
回答 2
实例包含多个主从,每个节点上包含proxymysqlagent进程、数据文件、配置
Tdsql支持分布式事务吗 ?
回答 1
Tdsql支持分布式事务,tdsql是面向金融领域的一款产品,支持分布式事务,基于XA协议的两阶段提交,在此基础上做了更深层次上的逻辑处理。
tdsql 对set的数量有限制吗?一个分布式集群最多可以有多少个shard?
回答 1
取决于最开始建立groupshard时选择的集群分片数2256个(针对独立部署版,TCE无法选择),默认是最大64个分片。
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~