premesso che non ho capito molto, ma per esperienza personale direi:
1- ovviamente utilizzerai AJAX per prelevare valori dal db attraverso un'apposita pagina;
2- utilizza un sistema di cache sui risultati;
3- esegui la ricerca dei prodotti solo con un numero di lettere maggiore di 3;
ovviamente poi dipende da quanti prodotti hai... se ne hai 20 alcuni punti puoi anche non considerarli...
per il resto, puoi per esempio recuperare dal db la coppia di risultati (ad es. nome_prodotto|id), poi con un explode recuperi sia il nome e sia l'id (da mettere in un ipotetico campo hidden sempre tramite JS)
esempio di query per recuperare valori dal db attraverso AJAX:
codice:SELECT * FROM prodotti WHERE name LIKE '$nome_cercato%'