使用Sphinx做数据库优化

Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应 用程序更容易实现专业化的全文检索。Sphinx特别为一些脚本语言设计搜索API接口,如PHP,Python,Perl,Ruby等,同时为 MySQL也设计了一个存储引擎插件。
Sphinx 单一索引最大可包含1亿条记录,在1千万条记录情况下的查询速度为0.x秒(毫秒级)。Sphinx创建索引的速度为:创建100万条记录的索引只需 3~4分钟,创建1000万条记录的索引可以在50分钟内完成,而只包含最新10万条记录的增量索引,重建一次只需几十秒。

下面来介绍sphinx的安装。
1、请确认安装了mysql服务器,和常用开发包。
2、确认mysql的数据结构。数据表使用表分区存储,使用phpmyadmin来创建。
QQ图片20130619142529.jpg 画红色箭头的地方需要注意,id为主键自增,表分区存储使用20个差不多就够了。
3、安装sphinx。(老夫使用的rpm包啊,无解),下载链接http://pan.baidu.com/share/link?shareid=2554931592&uk=3959484613
4、rpm安装完成后配置sphinx。sphinx的配置文件位于/etc/sphinx/sphinx.conf
配置文件结构非常清晰,source数据库源,index索引,indexer索引控制,searched服务控制。我把我自己写好的贴上来自行改动。


 

5、到这里基本配置就可以了。使用命令为数据库创建索引


 

6、使用search命令测试、例如


 

效果图 QQ截图20130619143922.jpg

91ri.org注:这很适合上亿的数据检索,但什么数据会有上亿呢?你懂。。

link:http://bbs.blackbap.org/forum.php?mod=viewthread&tid=4304

本文由网络安全攻防研究室(www.91ri.org)信息安全小组收集整理,转载请注明出处。