我正在尝试优化我的应用程序中某些查询的性能。
在一个具有多个连接和全文搜索的查询中,我SQL_CALC_FOUND_ROWS
在第一个查询中使用了分页。
不幸的是查询的性能很慢,没有SQL_CALC_FOUND_ROWS
查询大约快 100 倍。
在这种情况下,我有可能获得更好的表现吗?
我尝试了一个不带 的计数查询SQL_CALC_FOUND_ROWS
,但这个查询比SQL_CALC_FOUND_ROWS
-query 慢了一秒。
我正在尝试优化我的应用程序中某些查询的性能。
在一个具有多个连接和全文搜索的查询中,我SQL_CALC_FOUND_ROWS
在第一个查询中使用了分页。
不幸的是查询的性能很慢,没有SQL_CALC_FOUND_ROWS
查询大约快 100 倍。
在这种情况下,我有可能获得更好的表现吗?
我尝试了一个不带 的计数查询SQL_CALC_FOUND_ROWS
,但这个查询比SQL_CALC_FOUND_ROWS
-query 慢了一秒。
在不了解您的表结构和查询的情况下,我们无法判断查询是否可以更快。
它SQL_CALC_FOUND_ROWS
首先需要处理所有记录,但如果您使用 LIMIT 10 它可以在找到的前 10 条记录之后停止处理记录。所以存在性能差异。如果不使用计数或 SQL_CALC_FOUND_ROWS,则无法更快地获得相同的结果。
但是大多数时候,可以以不同的方式优化查询。
如果您正在研究全文搜索,请考虑使用 sphinx。以我的经验,它总是会胜过 MySQL:http ://www.sphinxsearch.com/