阅读量:0
MySQL Sphinx是一个高性能、全文检索引擎,适用于以下场景:
- 快速、高效、可扩展的全文检索:适用于数据量大的情况,比MyISAM和InnoDB都要快。能对多个源表的混合数据创建索引,不限于单个表上的字段。
- 高效地使用WHERE子句和LIMIT字句:在多个WHERE条件做SELECT查询时,索引选择性较差或者根本没有索引支持的字段,性能较差。Sphinx可以对关键字做索引,区别是,MySQL中,是内部引擎决定使用索引还是全扫描,而Sphinx是让你自己选择使用哪一种访问方法。
- 优化GROUP BY查询:在Sphinx中的排序和分组都是用固定的内存,它的效率比类似数据集全部可以放在RAM的MySQL查询要稍微高些。
- 并行地产生结果集:Sphinx可以让你从相同数据中同时产生几份结果,同样是使用固定量的内存。作为对比,传统SQL方法要么运行两个查询,要么对每个搜索结果集创建一个临时表。而Sphinx用一个multi-query机制来完成这项任务。
- 向上扩展和向外扩展:增加CPU/内核、扩展磁盘I/O。多个机器,即分布式Sphinx。
- 聚合分片数据:适合用在将数据分布在不同物理MySQL服务器间的情况。
通过上述分析,我们可以看出MySQL Sphinx在提高检索效率、优化查询性能、支持扩展性等方面具有显著优势,适用于需要高效全文检索的场景。