FOUND_ROWS()的限制?

Mar*_*tin 5 mysql pagination

我正在尝试加速一些SQL查询.我对分页的SQL查询是这样的(第3页):

SELECT 
    SQL_CALC_FOUND_ROWS book_id, book_title
FROM
    books
LIMIT 40, 60
Run Code Online (Sandbox Code Playgroud)

然后得到所有结果计数:

SELECT FOUND_ROWS();
Run Code Online (Sandbox Code Playgroud)

但如果结果数量巨大(数百万本书)那么FOUND_ROWS()可能需要很长时间.

事实是,没有必要计算数百万行(书籍),答案"10000+"对于普通用户来说已经足够了.

有可能是这样的吗?伪代码:

SELECT FOUND_ROWS(LIMIT 10000)
Run Code Online (Sandbox Code Playgroud)

小智 0

我不确定是否可能。但我建议尝试以下方法:

SELECT count(*) into number_of_rows from books.
Run Code Online (Sandbox Code Playgroud)

然后用于number_of_rows分页。