0

我正在尝试优化应用程序中某些查询的性能。使用SQL_CALC_FOUND_ROWS进行Mysql全文搜索性能

在一个包含多个连接和全文搜索的查询中,我在第一个分页查询中使用了SQL_CALC_FOUND_ROWS

不幸的是,查询的性能非常慢,没有SQL_CALC_FOUND_ROWS查询速度快了大约100倍。

我有可能在这种情况下获得更好的表现吗?

我试过了一个没有SQL_CALC_FOUND_ROWS的计数查询,但是这个查询比查询SQL_CALC_FOUND_ROWS慢了一秒。

回答

0

不知道任何关于您的表结构和查询,我们不可能知道查询是否可以更快。

随着SQL_CALC_FOUND_ROWS它首先需要处理所有记录,但如果您使用LIMIT 10它可以停止处理前10个找到的记录后处理记录。所以有性能差异。如果不使用计数或SQL_CALC_FOUND_ROWS,则无法更快地获得相同的结果。

但是大多数情况下,查询可以通过不同的方式进行优化。

如果您正在寻找全文搜索,请考虑使用sphinx。根据我的经验,它总是会超越MySQL:http://www.sphinxsearch.com/