我正在尝试使用Jupyter笔记本从MySQL表中获取1亿行。我尝试过使用pymysql.cursors来打开MySQL连接。实际上,为了加快查询选择过程,我尝试过使用批处理,因为要同时选择所有行是一个非常繁重的操作。以下是我的测试:import pymysql.cursors

# Connect to the database

connection = pymysql.connect(host='XXX',

user='XXX',

password='XXX',

db='XXX',

charset='utf8mb4',

cursorclass=pymysql.cursors.DictCursor)

try:

with connection.cursor() as cursor:

print(cursor.execute("SELECT count(*) FROM `table`"))

count = cursor.fetchone()[0]

batch_size = 50

for offset in xrange(0, count, batch_size):

cursor.execute(

"SELECT * FROM `table` LIMIT %s OFFSET %s",

(batch_size, offset))

for row in cursor:

print(row)

finally:

connection.close()

目前测试应该只打印出每一行(或多或少不太值得),但我认为最好的解决方案是将所有内容存储在pandas数据框中。

不幸的是,当我运行它时,我得到了这个错误:KeyError Traceback (most recent call

last) in ()print(cursor.execute("SELECT count(*) FROM `table`"))

---> count = cursor.fetchone()[0]batch_size = 50

KeyError: 0

有人知道会出什么问题吗?

也许使用chunksize是个更好的主意?

提前谢谢!在

更新

我再次重写了代码,没有批处理大小,并将查询结果存储在pandas数据帧中。最后,它似乎在运行,但由于数据量为100mln行,因此执行时间看起来几乎是“无限的”:

^{pr2}$

加快这一进程的正确方法是什么?可能通过传递参数chunksize = 250?

而且如果我试图打印df的类型,那么它输出的是一个生成器。实际上,这个不是一个数据帧。在

如果我打印df,输出是:

如何获取数据帧格式的数据?因为如果我打印fetch_all命令,我可以看到查询的正确输出选择,因此在这一点上,一切都按预期工作。在

如果我试图将Dataframe()与fetchAll命令的结果一起使用,我会得到:ValueError: DataFrame constructor not properly called!

另一个更新

我可以通过如下方式迭代pd.read_sql输出结果:for chunk in pd.read_sql(query, connection, chunksize = 250):

chunks.append(chunk)

result = pd.concat(chunks, ignore_index=True)

print(type(result))

#print(result)

最后我得到了一个名为result的数据帧。在

现在的问题是:是否可以无限制地查询所有数据?在

究竟是什么影响了流程基准?在

在MySQL中note是什么意思_在Jupyter noteb中从MySQL中检索巨大的数据表相关推荐

  1. mysql中的索引什么意思_索引是什么意思(数据库中的索引是什么)

    mysql中索引是存储引擎层面用于快速查询找到记录的一种数据结构,索引对性能的影响非常重要,特别是表中数据量很大的时候,正确的索引会极大的提成查询效率.简单理解索引,就相当于一本砖头厚书的目录部分,通 ...

  2. md5后得到的32位字符串存储到mysql中太占空间了_面试官:你对MySQL高性能优化有什么规范建议?...

    推荐阅读:吊打面试官!MySQL灵魂100问,你能答出多少? 文章篇幅较长,建议先收藏再找个合适的时间阅读 数据库命令规范 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用 ...

  3. mysql知识总结体会博客_可能是全网最好的MySQL重要知识点/面试题总结||CSDN博客精选...

    什么是MySQL?MySQL 是一种关系型数据库,在Java企业级开发中非常常用,因为 MySQL 是开源免费的,并且方便扩展.阿里巴巴数据库系统也大量用到了 MySQL,因此它的稳定性是有保障的.M ...

  4. mysql列名可以用中文吗_用了这么久的MySQL,你知道它的存储引擎吗?

    每天叫醒你的不是闹钟,而是梦想 1 MySQL数据库引擎简介 1.1 ISAM(Indexed Sequential Access Method) ISAM是一个定义明确且历经时间考验的数据表格管理方 ...

  5. mysql 单表字段多少合适_复制信息记录表|全方位认识 mysql 系统库

    在上一期<时区信息记录表|全方位认识 mysql 系统库>中,我们详细介绍了mysql系统库中的时区信息记录表,本期我们将为大家带来系列第七篇<复制信息记录表|全方位认识 mysql ...

  6. mysql 联合索引的命中规则_可能是全网最好的MySQL重要知识点/面试题总结

    标题有点标题党的意思,看了文章之后希望大家不会有这个想法,绝对干货!!!这篇花文章是我花了几天时间对之前总结的MySQL知识点做了完善后的产物,这篇文章可以用来回顾MySQL基础知识以及备战MySQL ...

  7. mysql服务启动成功后卸载_安装,启动与卸载Mysql系统服务(MYSQL常见问题)

    将Mysql添加到Windows系统服务中: 1.. 安装服务. 在Windows2000下,安装完成后,并没有把MySQL安装成服务,我们必须执行下面的语句把MySQL注册为服务:installdi ...

  8. centos mysql 5.2.3 编译安装_在CentOS上编译安装MySQL 5.7.13步骤详解

    MySQL 5.7主要特性 更好的性能 对于多核CPU.固态硬盘.锁有着更好的优化,每秒100W QPS已不再是MySQL的追求,下个版本能否上200W QPS才是用户更关心的. 更好的InnoDB存 ...

  9. mysql 统计做饼状图_使用Highcharts结合PHP与Mysql生成饼状图

    我们在做复杂的数据统计功能时会用到饼状图,饼状图用整个圆表示总体的数量或整体值1,用圆内各个扇形的大小表示各部分数量或该部分占总体的百分比,它可以清晰直观的表示各部分之间以及各部分与整体之间的数量关系 ...

最新文章

  1. 2022-2028年中国复膜胶行业发展现状调查及市场前景趋势报告
  2. 工业机器人行业研究报告
  3. Go游戏服务器开发的一些思考(九):Docker桥接网络及固定IP (二)
  4. QTextStream 的简单理解
  5. Angular 使用 Injector API 人工获取依赖注入的实例
  6. json处理最外层引号
  7. java信号量源代码_Java信号量Semaphore原理及代码实例
  8. MyBatis如何返回自增的ID
  9. Zeppelie连接jdbc的使用
  10. 真实面试经历:十面阿里,七面头条,六个Offer
  11. Python 计时器倒计时弹窗提醒
  12. 计算机软考深圳积分,2020年软考证书能为深圳积分入户加分吗?
  13. C#实现斐波那契数列
  14. android studio 开发手机APP非常详细的讲解
  15. 电脑重启f12怎么处理_联想电脑开机按f12后,怎么设置默认启动项
  16. 图表Chart.js入门教程
  17. 双色球,抽奖是否中奖
  18. 概说SEO中的过度优化
  19. 惊呆了!Java程序员最常犯的错竟然是这10个
  20. salsa20/12流密码matlab实现,流密码的故障攻击

热门文章

  1. AUC值越大_AUC,ROC 讲解
  2. mysql创建零件供应商表_● 建立一个供应商、零件数据库。其中“供应商”表 S(Sno,Sname,Zip,City)分别表示: 供应商代码、 供应 - 赏学吧...
  3. oracle采购业务流程,直发(从供应商采购直接发到客户)的业务流程
  4. Python——用面相对象写奥特曼大战小怪兽
  5. KISSY基础篇乄KISSY之IO(1)
  6. 服务研究之:San-Yih Hwang
  7. 【HTML | CSS | JAVASCRIPT】再见2022,一起来写一个响应式跨年倒计时吧(附源码)
  8. 钢铁是怎样炼成的之彭明盛
  9. java+调用飞信_java调用飞信接口发短信
  10. java.lang.UnsupportedOperationException: Currently Flink doesn‘t support individual window table-val