MYSQL如何遍历大数据表

时间:2021-12-30 05:46:21
各位牛人,小弟有一问题请教。
目前有一数据表格,该表格有大概300万条数据,我想逐条遍历一次,并计算每条的某个值。
目前采用LIMIT分页办法遍历,
"select * from weibo_emotion limit " + begin + ", " + 1000,大概是这样子,每次分页取出一千条,然后逐条计算。
但是我发现由于使用LIMIT语句,当beign 这个值逐渐增大时,这条语句执行的越来越慢,甚至达到几分钟。
请问各位高人 是否有其他快速的方法能够逐条遍历数据表。
此外 表中是有主键ID, 有索引。

4 个解决方案

#1


LIMIT N,M的时候,其实MYSQL本质上仍然需要从1到M,只不过1到N不输出处理而已。

#2


建议还是直接不加LIMIT一次性处理完成。

如果一定要加,则在上次LIMIT N,1000后记录下最后一个ID值,然后再下次时 where id>LastQueryID limit 1000

#3


limit主键 基本无延迟的情况

#4


以ID为标准分页?
如果是
select a.* from tt a inner join (select id from tt limit 1000,10) b
on a.id=b.id

#1


LIMIT N,M的时候,其实MYSQL本质上仍然需要从1到M,只不过1到N不输出处理而已。

#2


建议还是直接不加LIMIT一次性处理完成。

如果一定要加,则在上次LIMIT N,1000后记录下最后一个ID值,然后再下次时 where id>LastQueryID limit 1000

#3


limit主键 基本无延迟的情况

#4


以ID为标准分页?
如果是
select a.* from tt a inner join (select id from tt limit 1000,10) b
on a.id=b.id