4
我有一個大型的數據存儲在一個多維數組中。一個例子結構如下:php&mysql:最有效的方法來檢查大型數組與數據庫
Array
(
[1] => Array
(
[0] => motomummy.com
[1] => 1921
[2] => 473
)
[4] => Array
(
[0] => kneedraggers.com
[1] => 3051
[2] => 5067
)
)
我也有一個表在MySQL數據庫中currently
包含〜80K域名。這個列表每月可能增加約10K個域名。目標是將Array [] [0](域名)與mysql數據庫進行比較,並返回一個包含唯一值的保存值的數組(但重要保存是而不是重要)。
請注意,我只想比較第一個索引,而不是整個數組。
初始多維數組的大小被認爲是巨大的(更可能是從10萬到1000萬的結果)。回到數據庫的最佳方式是什麼?
我現在所做的只是將數據庫中的完整域列表存儲到數組中,然後使用以下函數將初始數組中的每個值與數據庫數組進行比較。這顯然非常緩慢和低效。
// get result of custom comparison function
$clean = array_filter($INITIAL_LIST, function($elem) {
$wordOkay = true;
// check every word in "filter from database" list, store it only if not in list
foreach ($this->domains as $domain) {
if (stripos($elem[0], $domain) !== false) {
$wordOkay = false;
break;
}
}
return $wordOkay;
});
一些僞代碼甚至實際代碼在這一點上會非常有幫助。
所以你想要數據庫中不存在的''數組''的條目? – dualed
準確地說,也許我會將我的問題重新說明一點。 –
爲什麼不直接使用'SELECT'語句 – Baba