python - 如何从 Mysql 中以 Chunks 获取数据
问题描述
到目前为止,我有一个表,Mysql
其中包含1000 万个条目,并且我正在编写一个脚本python
,我想在其中以100K
(行数)块的形式从数据库中获取数据。
我已经尝试过投掷分页(https://www.citusdata.com/blog/2016/03/30/five-ways-to-paginate/)但无法做到这一点任何人都可以帮助我。
解决方案
您可以使用LIMIT
in MySQL
LIMIT
子句与SELECT
, UPDATE
orDELETE
语句一起使用来限制结果集中的行数。
它接受一个或两个参数,即offset
和count
。
句法
SELECT column1, column2, ...
FROM table_name
LIMIT offset, count;
offset
指定从哪一行开始检索数据
count
指定从结果集中返回的行数
用法
SELECT * FROM STUDENTS
LIMIT 100, 50
在这里,100
指定偏移量,即查询将从100th
记录开始检索数据。
50
指定记录后将返回的100th
记录数。
例如。
在您的情况下,
count
将是100k
和offset
将是100k
开始的倍数0
SELECT * FROM STUDENTS
LIMIT 0, 100000
下一个查询将是:
SELECT * FROM STUDENTS
LIMIT 100000, 100000
等等..
所以在你的python
代码中,count
值将是相同的,即100000
值offset
将从0
, 100000
, 200000
, .. 变化。offset
值本质上是的倍数100000
推荐阅读
- flutter - Flutter:键盘覆盖 TextFields
- android - Firebase 内部错误:java.lang.RuntimeException:Firestore (19.0.2) 中的内部错误
- xslt - XSLT 将存储的 cookie 值从 %40 解码为 @
- spring-boot - 我使用 springboot 2.3.0 mvn spring-boot:build-image 为服务创建了 docker 映像。它显示这张图片的年龄 40 岁
- java - 除以零时出现 ArithmeticException 错误。但我不是。为什么?
- javascript - d3 与 reactjs 用于绘制人口条形图
- ruby-on-rails - 将日期时间转换为特定格式,包括区域 - Rails
- r - 使用 R 中的列表对 data.frame 进行子集有时但并非总是如此?
- python - 在Django(Python)中创建与日期相关的价格表的任何想法
- python - 如何随着时间的推移将多个复杂信号发送到同一个线程?