1 optional 2020-12-11 08:22:31 +08:00 via Android 加约束 进临时表 insert on conflict |
![]() | 2 levelworm 2020-12-11 08:30:43 +08:00 先全部导入到临时表,然后 merge 的时候去掉重复的,我是 Vertica 。 |
![]() | 3 dreasky 2020-12-11 08:35:25 +08:00 加 unique 索引,insert ignore ,性能就不知道了 |
4 jorneyr 2020-12-11 08:55:48 +08:00 ![]() insert ignore,开启事务,每次 5000 笔提交,几分钟就跑完了 |
![]() | 5 byte10 2020-12-11 09:26:42 +08:00 随便 搞下就行了。500W 都不是问题 |
![]() | 6 taozywu 2020-12-11 09:29:32 +08:00 1 )使用 sqlyog,navcat 很 easy 的 2 )或者在数据表结构增加 unique 索引 3 )。。。 |
![]() | div class="fr"> 7 Ho1iday 2020-12-11 09:45:11 +08:00 replace into |
![]() | 8 LuciferGo 2020-12-11 13:25:37 +08:00 ![]() oracle 的话目标表加个唯一索引,sqlldr 后,重复数据会进入到 bad 文件,也可以用无唯一性中间表导入后去重加载到结果表,MySQL 是 insert 后加个 ignore,就可以了 |
![]() | 9 AmosAlbert 2020-12-11 13:31:52 +08:00 via Android 先进 Redis |
![]() | 10 qiayue PRO 总共只有 50 万笔需要插入,还是每隔一段时间都会产生 50 万笔? 两种情况有两种完全不同的处理方式。 如果是后者,间隔时间是多久?每秒还是每分钟还是每小时? 场景不介绍清楚,没办法给出最合适的解决方案。 |
![]() | 12 SlipStupig 2020-12-11 13:50:50 +08:00 @Devin 将这十个字段生成一个 SHA256 的 hash,作为索引,很容易判断的啊 |
![]() | 13 qiayue PRO 是的,按顺序拼接十个字段,记住中间要加入分隔符,然后算下 md5 值当做唯一键 |