Sphinx (斯芬克司)

Sphinx定义:
是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索
同时为MySQL也设计了一个存储引擎插件。
Sphinx优点:
单一索引最大可包含1亿条记录,在1千万条记录情况下的查询速度为0.x秒(毫秒级)。
Sphinx创建索引的速度为:创建100万条记录的索引只需 3~4分钟,创建1000万条记录的索引可以在50分钟内完成,

而只包含最新10万条记录的增量索引,重建一次只需几十秒。
Sphinx的主要特性包括:
1、高速索引 (在新款CPU上,近10 MB/秒);
2、高速搜索 (2-4G的文本量中平均查询速度不到0.1秒);
3、高可用性 (单CPU上最大可支持100 GB的文本,100M文档)
4、支持分布式搜索
5、提供从MySQL内部的插件式存储引擎上搜索 支持布尔,短语, 和近义词查询
6、持每个文档多个全文检索域(默认最大32个); 支持每个文档多属性; 支持断词; 支持单字节编码与UTF-8编码
Sphinx适用场景:
1、在数据量大的时候适合用它进行搜索,他比MyISAM和InnoDb 都要快
能对多个源表的混合数据创建索引,不限于单个表上的字段。 能将来自多个索引的搜索结果进行整合
2、高效地使用WHERE子句和LIMIT字句
当在多个WHERE条件做SELECT查询时,索引选择性较差或者根本没有索引支持的字段,性能较差。sphinx可以对关键字做索引
因为sphinx是把数据保存到RAM中,所以sphinx不会做太多的I/O操作
3、优化GROUP BY查询
在sphinx中的排序和分组都是用固定的内存,它的效率比类似数据集全部可以放在RAM的MySQL查询要稍微高些。
posted @ 2017-03-19 19:34  阿鑫//1996  阅读(620)  评论(0编辑  收藏  举报