https://docs.pingcap.com/zh/tidb/stable/tidb-lightning-logical-import-mode-usage#%E6%80%A7%E8%83%BD%E8%B0%83%E4%BC%98
可以通过以下配置文件使用逻辑导入模式执行数据导入:
TiDB Lightning 的完整配置文件可参考完整配置及命令行参数。
冲突数据,即两条或两条以上的记录存在主键或唯一键列数据重复的情况。当数据源中的记录存在冲突数据,将导致该表真实总行数和使用唯一索引查询的总行数不一致的情况。TiDB Lightning 的逻辑导入模式通过 on-duplicate
配置冲突数据检测的策略,TiDB Lightning 根据策略使用不同的 SQL 语句进行插入。
策略 | 冲突时默认行为 | 对应 SQL 语句 |
---|---|---|
replace |
新数据替代旧数据 | REPLACE INTO ... |
ignore |
保留旧数据,忽略新数据 | INSERT IGNORE INTO ... |
error |
中止导入 | INSERT INTO ... |
TiDB Lightning 的逻辑导入模式性能很大程度上取决于目标 TiDB 集群的写入性能,当遇到性能瓶颈时可参考 TiDB 相关性能优化文档。
如果发现目标 TiDB 集群的的写入尚未达到瓶颈,可以考虑增加 Lightning 配置中 region-concurrency
的值。region-concurrency
默认值为 CPU 核数,其含义在物理导入模式和逻辑导入模式下有所不同,逻辑导入模式的 region-concurrency
表示写入并发数。配置示例:
调整目标 TiDB 集群的 raftstore.apply-pool-size
和 raftstore.store-pool-size
参数也可能提升导入速度。