首页 > 解决方案 > 如何从 Mysql 中以 Chunks 获取数据

问题描述

到目前为止,我有一个表,Mysql其中包含1000 万个条目,并且我正在编写一个脚本python,我想在其中以100K行数)块的形式从数据库中获取数据。

我已经尝试过投掷分页(https://www.citusdata.com/blog/2016/03/30/five-ways-to-paginate/)但无法做到这一点任何人都可以帮助我。

标签: pythonmysqldatabase

解决方案


您可以使用LIMITin MySQL
LIMIT子句与SELECT, UPDATEorDELETE语句一起使用来限制结果集中的行数。
它接受一个或两个参数,即offsetcount

句法

SELECT column1, column2, ...
FROM table_name
LIMIT offset, count;

offset指定从哪一行开始检索数据
count指定从结果集中返回的行数

用法

SELECT * FROM STUDENTS
LIMIT 100, 50 

在这里,100指定偏移量,即查询将从100th记录开始检索数据。
50指定记录后将返回的100th记录数。

例如。

在您的情况下,
count将是100koffset将是100k开始的倍数0

SELECT * FROM STUDENTS
LIMIT 0, 100000

下一个查询将是:

SELECT * FROM STUDENTS
LIMIT 100000, 100000

等等..
所以在你的python代码中,count值将是相同的,即100000offset将从0, 100000, 200000, .. 变化。offset值本质上是的倍数100000

如需进一步参考,请查看此处链接1 链接2


推荐阅读