gpt4 book ai didi

php - 在 mysql 中选择查询具有限制的批量记录

转载 作者:行者123 更新时间:2023-11-30 22:27:26 24 4
gpt4 key购买 nike

我需要有关select 查询的帮助。

我有一个包含数百万条记录的表,我使用了:

 select * from table where status=1 limit $start,$pagesize 

用于分页,因此每页加载 25 条记录。

我担心的是,当我对表中的数千条记录运行查询时,加载时间是可以接受的,但是一旦我对大量记录运行查询,加载时间就会增加。

所以我试图找到一种方法,现在我只想显示表中的 2500 条最新记录,限制为 0 到 25。

select * from (select * from table 
where status=1 order by id limit 0,2500)t
where status=1 order by id limit $start,$pagesize

但加载时间不受影响。

谁能提出更好的方法?

我已经在使用索引,并且在表中为状态和 ID 字段建立了索引。

最佳答案

正如我的另一位 friend 所说,是的,很难优化 LIMIT。我建议您实现两件事,希望它们对您有所帮助。

  1. 在状态列上添加索引:

    ALTER TABLE table ADD INDEX index_name (status);

  2. 确保 id 列是表的主键,因为 PK 比其他键快。


更新 1:

使用 EXPLAIN,并检查正在获取多少行或查询是否正确使用了索引?

EXPLAIN select * from table where status=1

关于php - 在 mysql 中选择查询具有限制的批量记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34805057/

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