This question is easy people. Make autocomplete beautiful in the client side of a web app is simple. There are a lot of plugins.
But, in the backside, in the server side
I do agree that you need to have some better solution. Apache solr has a "suggestion" feature that you can use pretty well. If your data set is small then put all the data in memory and just do a simple loop.
On the front end, I recommend using setTimeout() to wait for about 200ms before firing the ajax call. If in that 200ms, another keystroke is triggered, then cancel the last timeout and start another one. This is a really clean solution where it wouldn't hit the db with each keystroke. I have used it in the past and it works really well.
This explains solr with jquery and how to create an autocomplete really well. http://www.mattweber.org/2009/05/02/solr-autosuggest-with-termscomponent-and-jquery/