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/