我很好奇,有什么更好的性能。关于上下文的一点点:我正在处理一个 CSV 文件,该文件需要输入到数据库表中,并且需要确保我能闻出重复项。所以为了达到这个目的。对此有两种策略:
一个。如果它的一列是重复的,请检查数据库的每一行
。收集所有行,然后检查其中是否有重复
本质上是为了一个。
SELECT count(*) FROM table WHERE UniqueColumn = $uniqueColumnFromCSV
对于 b:
SELECT UniqueColumn FROM table
WHERE UniqueColumn in ($uniqueColumn1FromCSV,$uniq....,$uniqueColumn2FromCSV);
以上将为我提供 db 表中存在的电子邮件数组,我可以使用它来过滤掉我的$csvLines[]
.
我赞成 b,因为它会进行 1 个 DB 调用,并且不会通过处理每一行来停止 CSV 文件读取机制。再说一次,由于第二次调用是检查整个数据库表是否存在多条记录,我不太相信。
为了便于讨论,我们可以忽略 CSV 部分。我真正感兴趣的是对数据库进行 1000 次调用以检查是否存在 uniqueColumn 值与对数据库进行 1 次调用以检查哪些 uniqueColumns 重复的性能