在数千个查询中插入几行最快的方法


fastest way to insert just a few rows over thousands of querys MYSQL

我有数千个产品插入行,但是我还需要同时插入供应商信息。

除了将其附加到产品导出的每个产品上之外,没有办法查询我正在导出的信息(名称,供应商编号等)的供应商信息。

除非我检查每个产品信息导出,否则无法确保所有供应商都已更新/插入。

正确地说,大约2000种产品只有5家供应商。

插入供应商的最佳方法是什么,而不是每次检查供应商是否存在,因为几乎所有时间都存在?

最好的方法是什么?

我正在使用pdo和准备好的语句和事务…

  1. 选择所有供应商
  2. 继续插入产品数据
    • 检查您是否有特定的供应商
      • 如果没有,则插入
    • 插入产品
  3. 收集所有产品说明书的供应商数据
  4. 完成产品插入后,循环供应商并更新

你的要求不是很清楚(至少对我来说)。

您的意思是,每次在数据库中插入新产品时,您都想要一种更简单的方法来检查产品的供应商是否已经存在于数据库中?

如果是这样的话,每次你插入一个新的Product ,你可以用下面的语句插入/更新供应商的info:

REPLACE INTO suppliers (name, number, ...) VALUES ([name], [number], ...);

该语句做以下操作:

  • 如果当前供应商:
    • DB表中不存在,它将保存在suppliers表中。
    • 如果DB已经存在,它将使用提供的信息更新供应商的DB数据。

我认为这是你做你想做的事比较快捷的方法。