sql查询返回时间是随机的

时间:2014-07-17 02:17:40

标签: php mysql sql

我在网站上显示数据库的结果时遇到了一个奇怪的问题。我的数据库长度为230万行,并具有全文索引。我使用它作为查询:

SELECT * 
FROM $tbl_name 
WHERE MATCH(DESCRIPTION) 
AGAINST ('$search') 
LIMIT $start, $limit.

使用php分页显示结果,这就是我使用limit的原因。通过phpadmin在实际数据库服务器上运行查询始终返回100ms以下的时间。 Althogh的查询时间不到100毫秒,它仍然需要2到2分钟,因为当我运行查询时它会陷入“加载”状态。当网页运行查询时,我可以从300毫秒的加载时间到2分钟。基于此我使用Chrome的内置开发人员控制台,看到我的PHP脚本的接收时间是问题。将表复制到新表并创建新的全文索引可以解决所有2分钟的问题,然后它又回到了极其缓慢的状态。我正在使用hostgator btw,我猜是问题。如果有人知道为什么它如此随机我会非常感激它,因为2分钟运行搜索是不可接受的。^ ^,谢谢你!

1 个答案:

答案 0 :(得分:1)

如果这是一个共享的Web服务器,可能是其他人的网站正在陷入服务器。也许您需要获得专用服务器?

你也可以尝试一遍又一遍地对数据库运行查询,看看性能是否会在前2分钟后降低,就像你通过php注意到的一样。

此外,对于MySQL来说,通常200万行是很多,而且对于带有MySQL的FULLTEXT。您可能希望在此时考虑使用适当的搜索引擎,例如Solr。