Sphinx (http://www.sphinxsearch.com) is a free, open source, full-text search engine, designed from the ground up to integrate well with databases. It has DBMS-like features, is very fast, supports distributed searching, and scales well. It is also designed for efficient memory and disk I/O, which is important because they’re often the limiting factors for large operations.
Sphinx works well with MySQL. It can be used to accelerate a variety of queries, including full-text searches; you can also use it to perform fast grouping and sorting operations, among other applications. Additionally, there is a pluggable storage engine that lets a programmer or administrator access Sphinx directly through MySQL. Sphinx is especially useful for certain queries that MySQL’s general-purpose architecture doesn’t optimize very well for large datasets in real-world settings. In short, Sphinx can enhance MySQL’s functionality and performance.
The source of data for a Sphinx index is usually the result of a
SELECT query, but you can build
an index from an unlimited number of sources of varying types, and each
instance of Sphinx can search an unlimited number of indexes. For example,
you can pull some of the documents in an index from a MySQL instance
running on one remote server, some from a PostgreSQL instance running on
another server, and some from the output of a local script through an XML
In this appendix, we explore some use cases where ...