Możliwe, że nie opisałem do końca

Mam aktualne dane w tablicy "dane_aktualne".
W przypadku tego kodu:
<?php
$zapytanie = "SELECT * FROM buyers";
// tutaj jakiś kod porównujący i coś tam liczący
?>
pobieram całą zawartość tablicy z bazy danych. I teraz muszę znaleźć w "dane_akutalne" wiersz odpowiadający aktualnemu wierszowi z bazy danych i porównać wartości obu tablic, czyli $wiersz i $dane_aktualne[$i]. Wadą tego rozwiązania jest to, że jak baza urośnie to będę miał np. 1000, 10000 wierszy do porównania z drugą tablicą.. max 200 wierszy.
Natomiast w przypadku tego kodu:
<?php
for ( $i; bla bla; $i++ )
{
$zapytanie = "SELECT * FROM buyers WHERE `user_id`=".$dane_aktualne[$i];
if ( $test )
// wykonaj działanie
}
?>
Tak naprawdę ograniczam się tylko to porównania wybranych rekordów o określonym user_id. Czyli sprawdzam tylko to co muszę uaktualnić. W drugim przypadku jak wynika będę miał np. 200 zapytań do bazy, ale zwrócony zostanie maksymalnie jeden wiersz lub 0, jeśli nie ma go w bazie.
I teraz chodzi o wydajność takiego rozwiązania.. zrobić jedno zapytanie a później sprawdzać wszystko(baza przeciez stale rośnie) z nowymi, czy zrobić tylko określoną ilość zapytań i przetwarzać tylko te przypadki. Nie wiem czy takie masowe wysyłanie zapytań nie przeciąży bazy. Oczywiście pierwszy sposób można zoptymalizować na razie tylko testuję.
Ewentualnie jeśli ktoś zna jakiś pomysła na to aby uaktualnić w prosty sposób baze lub jakiś algorytm będę wdzięczny