gpt4 book ai didi

使用 PHP 分页时 MySQL 大表性能问题

转载 作者:可可西里 更新时间:2023-11-01 06:47:29 25 4
gpt4 key购买 nike

有一个包含大约 300,000 条记录的巨大 mysql 表,并希望以这种方式使用查询在 PHP 中分页记录(虽然不是这里的重点):

SELECT * FROM `table` LIMIT 250000, 100 

记录的后半部分可能会很慢,尤其是在接近表末尾时(LIMIT 开始非常大)。我的猜测是 MySQL 必须一直倒数到 250000 才能将结果提供给我?

那么如何解决这个或任何其他可能更快的分页方法?谢谢!

最佳答案

确保您使用的是索引,否则它会进行全表扫描。您可以查看执行计划来验证这一点,或者通过使用 ORDER BY 子句(在索引列上)来强制执行此问题。这是 more information .

您的表并没有那么大,只有 30 万行。然而,接近表格末尾存在性能问题。唯一真正的解决办法是伪造限制条款。有一个自动递增字段,将行编号从 1 到 300,000,然后执行:

SELECT *
FROM mytable
WHERE field BETWEEN 250000 and 250100

或类似的。如果您经常删除行,这可能会有问题或不可能,但我倾向于发现较旧的数据往往变化较少,因此您可以通过对前 100,000 行使用 LIMIT 和代理分页来稍微优化它列之外。

关于使用 PHP 分页时 MySQL 大表性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/741172/

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