Php 全文搜索(Mysql)第一次速度很慢,第二次以后速度会快得多

Php 全文搜索(Mysql)第一次速度很慢,第二次以后速度会快得多,php,mysql,full-text-indexing,Php,Mysql,Full Text Indexing,我有一个包含4000条记录的表(通过全文搜索更容易处理)。第一次执行搜索查询时,速度要慢得多。大约需要5到10秒。然后它变得更快。如果站点在10或15分钟内保持不活动状态,并且当我再次尝试执行查询时,它会变慢 我正在使用mysql+PHP。我想这是缓存问题。我们的网站托管在第三方服务器上,我无法访问其中的缓存 我的问题有解决办法吗 提前谢谢 编辑: 嗨, 谢谢你的回复。这是我的问题 从PRODUCT_2_CATEGORY、PRODUCT、MERCHANT中选择PRODUCT_2_CATEGORY

我有一个包含4000条记录的表(通过全文搜索更容易处理)。第一次执行搜索查询时,速度要慢得多。大约需要5到10秒。然后它变得更快。如果站点在10或15分钟内保持不活动状态,并且当我再次尝试执行查询时,它会变慢

我正在使用mysql+PHP。我想这是缓存问题。我们的网站托管在第三方服务器上,我无法访问其中的缓存

我的问题有解决办法吗

提前谢谢

编辑:

嗨, 谢谢你的回复。这是我的问题

从PRODUCT_2_CATEGORY、PRODUCT、MERCHANT中选择PRODUCT_2_CATEGORY.PRODUCT_ID=PRODUCT.ID和PRODUCT.PRO_STATUS='active'和PRODUCT.MERCHANT_ID=MERCHANT.ID和MERCHANT.M_STATUS='active'和(猫ID='1'或猫ID='1004'或猫ID='1005'或猫ID='1006'或猫ID='1007'或猫ID='1008'或猫ID='1002'或猫ID='1003'或猫ID='45'或猫ID='46'或猫ID='74'或猫ID='75'或猫ID='76'或猫ID='49'或猫ID='50'或猫ID='77'或猫ID='78'或猫ID='79'或猫ID='80'或猫ID='83_ID='84'或CAT'u ID='47'或CAT'u ID='89'或CAT'u ID='51'或CAT'u ID='52'或CAT'u ID='88'或CAT'u ID='86'或CAT'u ID='85'或CAT'u ID='48'或CAT'u ID='53'或CAT'u ID='54'或CAT'u ID='90'或CAT'u ID='200'或CAT'u ID='91'或CAT'u ID='92'或CAT'93'或CAT'u ID='94'或CAT'ID='11'或CAT'u='95'或CAT'u='98或CAT'='101'或CAT'u ID='96'或CAT'u ID='102'或CAT'u ID='103'或CAT'u ID='104'或CAT'u ID='105'或CAT'u ID='97'或CAT'u ID='107'或CAT'u ID='108'或CAT'u ID='109'或CAT'u ID='110'或CAT'u ID='114'或CAT'ID='119'或CAT'u ID='120'或CAT'u ID='121'或CAT'ID='115'或CAT'122'或CAT'ID='123'或CAT'u='125'或CAT'D='127'或CAT'u ID='128'或CAT'u ID='129'或CAT'u ID='117'或CAT'u ID='130'或CAT'u ID='131'或CAT'u ID='111'或CAT'u ID='132'或CAT'u ID='136'或CAT'u ID='137'或CAT'u ID='139'或CAT'u ID='140'或CAT'u ID='133'或CAT'u ID='141'或CAT'ID='142'或CAT'143'或CAT'ID='144'或CAT'u='146'或CAT'CA'猫ID='147'或猫ID='148'或猫ID='149'或猫ID='150'或猫ID='151'或猫ID='135'或猫ID='153'或猫ID='154'或猫ID='155'或猫ID='156'或猫ID='64'或猫ID='158'或猫ID='70'或猫ID='164'或猫ID='71'或猫ID='165'或猫ID='159'或猫ID='166'或猫ID='168'或猫ID='167'猫ID='160'或猫ID='73'或猫ID='170'或猫ID='172'或猫ID='173'或猫ID='174'或猫ID='161'或猫ID='175'或猫ID='176'或猫ID='177'或猫ID='178'或猫ID='162'或猫ID='179'或猫ID='180'或猫ID='181'或猫ID='182'或猫ID='183'或猫ID='163'或猫ID='192'或猫ID='191'CAT_ID='189'或CAT_ID='188'或CAT_ID='187'或CAT_ID='186'或CAT_ID='185'或CAT_ID='193'或CAT_ID='112'或CAT_ID='113'或CAT_ID='65'或CAT_ID='66'或CAT_ID='68'或CAT_ID='69'),并按产品将(产品名称)与('shirt'在布尔模式下)进行匹配。标题ASC限制0,12

我们的网站托管在第三方web服务器(Plesk控制面板)上。因此,我不确定是否可以安装其他软件

我们的网站是2010.shoppingstrip.com.au。当您搜索某些东西时,将执行此查询


谢谢

MySQL在全文搜索方面非常糟糕,无论是在性能还是易用性方面


我建议您使用它。

索引您的表会产生巨大的影响。在最近一次MySql数据库中有150万条记录的作业中,使用联接的基本查询需要35分钟以上。索引表(大约需要3-4分钟)后,查询将在4秒钟内执行

还应检查查询是否有任何可能的改进。例如,异国情调的连接可以极大地延长查询时间。此外,一次运行过多的foreach循环以获取记录可能会导致过多的延迟。根据您的情况,您可以优化查询,以便只搜索特定的、基本的元素,以便更好地搜索呃表演

若要测试查询,请在本地计算机上抛出WAMP server的副本。导入脚本和数据库,然后运行一些测试。这可以确定查询是否效率低下,或者问题是否出在服务器上

考虑一下您使用的搜索方法。例如,在mysql中查找值可以通过诸如“LIKE”、“=”、“REGEXP”等操作符来完成。通过实验来提高性能并减少加载时间

最后,如果所有其他方法都失败了,您可以求助于缓存解决方案或更强大的数据库托管。4000条记录在总体方案中并不是很大,您不应该经历如此缓慢的加载时间。我通过Zend Framework的内置缓存系统进行缓存,运气不错


如果你仍然一无所获,请发布你的查询样本,我们可以去镇上看看!

我真的没有得到反对票。本演示应该能让你对问题有所了解()即使使用索引,
MySQL
也没有那么好。
Lucene
Sphinx
MySQL
有一个数量级的改进。仍然应该注意的是,在
MySQL
中对全文搜索的支持和性能在最近的版本中有了相当大的改进。有关更多信息,请参阅本演讲通过讨论:我已经编辑了我的问题以提供我正在使用的查询。谢谢!