不,这就是要分页的应用程序必须要做的事。它是可靠且防弹的,尽管它使查询两次。但是您可以将计数缓存几秒钟,这会很有帮助。
另一种方法是使用
SQL_CALC_FOUND_ROWS子句,然后调用
SELECTFOUND_ROWS()。除了必须
FOUND_ROWS()随后进行调用之外,还有一个问题:MySQL中有一个bug,它会影响
ORDERBY查询,使其在大表上比两个查询的幼稚方法慢得多。

不,这就是要分页的应用程序必须要做的事。它是可靠且防弹的,尽管它使查询两次。但是您可以将计数缓存几秒钟,这会很有帮助。
另一种方法是使用
SQL_CALC_FOUND_ROWS子句,然后调用
SELECTFOUND_ROWS()。除了必须
FOUND_ROWS()随后进行调用之外,还有一个问题:MySQL中有一个bug,它会影响
ORDERBY查询,使其在大表上比两个查询的幼稚方法慢得多。