I completely agree with Stanislav here. I think any external search engine like http://lucene.apache.org/ or http://sphinxsearch.com/ will be faster on the collection size you've mentioned.
For Sphinx crash course I would recommend to start with simple setup described in http://astellar.com/2011/12/replacing-mysql-full-text-search-with-sphinx/
In your case I would add few things into basic setup mentioned.
Use ranged query in source config to lower pressure on MySQL while indexing and extend sql_query with start/end template:
source my_source
{
...
sql_query_range = SELECT MIN(id), MAX(id) FROM table
sql_range_step = 1000
...
sql_query = SELECT id, ... FROM table WHERE id>=$start AND id <= $end
...
}
This will tell Sphinx to fetch up to 1000 docs per MySQL query instead of all records in table at once. If you have more than 1M records this is must have option.
In your case depends on amount of memory you have on the box I would also increase indexer's mem_limit up to 512M..1024M so indexing will work faster.
As you play with Sphinx you may want to move some queries from MySQL to Sphinx side and also add non-full text fields to Sphinx index to perform geodistance-based or faceted search as described in http://sphinxsearch.com/docs/current.html#attributes