我正在寻找在速度和性能方面的最佳方法,以将新条目添加到数据库中。
我正在提取一个供稿,该供稿会导致一系列aprox。 50.000(50k)条目。
我有一个已经包含很多条目的数据库,而不是进行截断和全部添加,我只想将新条目添加到数据库中。
数组中的每个条目都有唯一的ID,因此可以在数据库中轻松选择它们。
我认为最“最佳”的方法是迭代数组,然后对数组中的每个元素进行选择,以查看它是否已在数据库中,以及是否未将其添加到数据库中。
但是,这似乎是错误的,因为它是查询的“全部”。
有更快/更好的方法吗?
答案 0 :(得分:2)
我将5万个条目保存到CSV文件中,并使用LOAD DATA LOCAL INFILE 'filename'
。
添加REPLACE
选项以覆盖数据库中与唯一键匹配的任何记录,或者添加IGNORE
选项以避免覆盖记录,而忽略CSV文件中的新数据。
阅读https://dev.mysql.com/doc/refman/8.0/en/load-data.html
另请参见我的演示文稿Load Data Fast!,其中我评估了插入大数据的不同方法的性能。
答案 1 :(得分:0)
最有效的方法是INSERT INTO
+进行了here所述的调整