Memecache dessa tangenttryckningsförfrågningar/DB-svar och undvik resan till DB varje gång efter den första.
Eller generera en förkompilerad lista över möjliga autokompletteringsfraser, cacheminne i minnet och fråga i stället för DB. Varför behöver du fråga DB efter en sökruta? Skapa en godtagbar lista och använd den istället för att skapa en anslutning över flera nivåer!
Eller se till att det finns index på tabellerna din fråga till DB gör.