in addition to the peer comment to this one, using a 3rd party daemon is a way of taking load off your database. in addition, updates to the 3rd party daemon can be incremental ("deltas") or flat-out swapped. further, as the amount of information increases, searching all of it slows down. Sphinx lets you create clusters where the data is partitioned, the search executed on all of the boxes, and the results put together in the right order (with easy setup!) Further still, you can do impressive things like fulltext search on complex joins very fast. This is fast because you are actually doing the join ahead of time (google ETL) and then just searching on the combined, denormalized, data. This doesn't muddle up your schema and is very very fast.