我很好奇,有什麼更好的性能。關於上下文的一點點:我正在處理需要輸入到數據庫表中的CSV文件,並且需要確保我嗅出重複項。所以爲了實現這一點。有兩種策略:多行SQL查詢檢查1行vs 1單行查詢檢查多行
a。檢查每一行是否對應數據庫,如果其中一列是重複的
b。收集所有行,然後檢查是否有任何這些行是重複的
本質上爲a。
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是重複的