-2

我是 php 和 mysql 的新手。现在我面临一个问题是我需要在大型数据库中搜索数据,但是搜索一个单词需要 3 分钟以上,有时浏览器会显示超时。我使用 FULLTEXT 技术进行搜索,那么有什么解决方案可以减少搜索时间?

4

3 回答 3

1

为您随后更喜欢的表字段创建索引,即使需要一些内存空间查询结果也应该在更短的时间内返回最佳结果。

于 2012-05-09T04:55:30.530 回答
1

这并不能直接回答您的问题,而是一个建议:

我在全文搜索中遇到了同样的问题,所以我切换到 SOLR:

http://lucene.apache.org/solr/

它是一个基于用 Java 编写的 Lucene 库的搜索服务器。它被一些最大规模的网站使用:

http://wiki.apache.org/solr/PublicServers

所以速度和可扩展性不是问题。但是,您无需了解 Java 即可实现它。它提供了一个可以查询的 REST 接口,甚至提供了以 PHP 数组格式返回搜索结果的选项。

下面是官方教程:

https://builds.apache.org/job/Solr-trunk/javadoc/doc-files/tutorial.html

SOLR 搜索索引文件,因此您需要将数据库内容转换为 xml 或 json 文件。您可以为此使用数据导入处理程序扩展:

http://wiki.apache.org/solr/DataImportHandler

要查询 REST 接口,您可以简单地使用get_file_contents()php 函数或 CURL。或者 SOLR 的 PHP sdk:

http://wiki.apache.org/solr/SolPHP

于 2012-05-09T04:58:03.180 回答
0

取决于你的数据库有多大。为您正在搜索的字段添加索引是第一件事。

我遇到了同样的问题,为该字段添加索引效果很好。

于 2012-05-09T07:08:59.290 回答