quante volte dovrai fare questo lavoro? No perchè un conto farlo una volta sola, un conto farlo ripetutamente
nel secondo caso sposterei l'attenzione nel programmare direttamente il database per farti restituire i dati filtrati per keywords, usando indici, views, tabelle temporanee etc
nel primo caso potresti accontentarti di fare un brute force e ciclare sui milioni di record di risultati ottenuti.
di sicuro hai da aumentare parecchio i temi di timeout per lo script php