gpt4 book ai didi

Mysql SQL_CALC_FOUND_ROWS 和分页

转载 作者:IT老高 更新时间:2023-10-29 00:16:54 25 4
gpt4 key购买 nike

所以我有一个表,其中有超过 500 万行。当我使用 SQL_CALC_FOUND_ROWS 时,查询永远挂起。当我把它拿出来时,查询在一秒钟内执行,限制为 25。我的问题是出于分页原因,是否有替代方法来获取总行数?

最佳答案

SQL_CALC_FOUND_ROWS 强制 MySQL 扫描所有匹配的行,即使它们永远不会被获取。在内部,它相当于在没有 LIMIT 子句的情况下执行相同的查询。

如果您通过 WHERE 进行的过滤不是太疯狂,您可以计算并缓存各种类型的过滤器以节省 calc_found_rows 施加的全扫描负载。对于大多数可能的 where 子句,基本上运行“select count(*) from ... where ....”。

否则,您可以采用 Google 的方式,只是吐出一些偶尔与现实无关的页码(您知道,您会看到“Gooooooooooooogle”,进入第 3 页,然后突然用完结果)。

关于Mysql SQL_CALC_FOUND_ROWS 和分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4765901/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com