我正在构建一个自定义导入工具,想知道导入大量数据的最佳实践是什么。我有以下 JSON 数据结构,每次导入 30 天内至少有 500 种产品。
"rows": [{
"product_uid": "k110",
"sale_date": "2018-06-06",
"amount": 15
}, {
"product_uid": "k111",
"sale_date": "2018-06-06",
"amount": 22
}, {
"product_uid": "k110",
"sale_date": "2018-06-07",
"amount": 30
}
]
表的架构如下:
daily_sales_id - product_uid - sale_date - amount
我正在使用nodejs mysql在单个连接中执行多个 SQL 语句。它适用于第一次插入行,但在随后的尝试中,它将插入重复的行。我可以在插入之前截断表,但如果用户决定导入增量快照而不是整个记录,这将失败。
虽然我可以执行一个 for 循环来检查记录是否存在并进行更新而不是插入,但循环 15,000 多条记录并创建 15,000 多个选择连接似乎不是一个好主意。
是否有任何其他替代方法可以保留数据结构并执行更新/插入而无需遍历 15,000 多条记录?导入 csv 文件不知道 daily_sales_id。