做数据导入时如何处理主键和唯一索引

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【 TiDB 使用环境】
集群

【概述】 场景 + 问题概述
源库为O库,有个大表10亿级别,每天更新的数据量5KW行,主键为自增长整型数字。
在导入TiDB时,是否要考虑热点问题? 如果主键是连续的,会不会所有数据都写入到一个分片上?

如果是这样,是不是在TiDB的目的表上再加一个自增主键,然后把O库的主键做唯一索引使用?

【备份和数据迁移策略逻辑】

【背景】 做过哪些操作

【现象】 业务和数据库现象

【问题】 当前遇到的问题

【业务影响】
TiDB中,对于50亿级大表,使用主键查询和唯一索引查询,性能有多少区别?
【TiDB 版本】

【附件】

  • 相关日志、配置文件、Grafana 监控(https://metricstool.pingcap.com/)
  • TiUP Cluster Display 信息
  • TiUP CLuster Edit config 信息
  • TiDB-Overview 监控
  • 对应模块的 Grafana 监控(如有 BR、TiDB-binlog、TiCDC 等)
  • 对应模块日志(包含问题前后 1 小时日志)

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

使用 AUTO_RANDOM 处理自增主键热点表

使用 AUTO_RANDOM 处理自增主键热点表,适用于代替自增主键,解决自增主键带来的写入热点。

使用该功能后,将由 TiDB 生成随机分布且空间耗尽前不重复的主键,达到离散写入、打散写入热点的目的。

注意 TiDB 生成的主键不再是自增的主键,可使用 LAST_INSERT_ID() 获取上次分配的主键值。

将建表语句中的 AUTO_INCREMENT 改为 AUTO_RANDOM 即可使用该功能,适用于主键只需要保证唯一,不包含业务意义的场景。

https://docs.pingcap.com/zh/tidb/stable/troubleshoot-hot-spot-issues

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。