gpt4 book ai didi

python -mysqldb : How to efficiently get millions/billions of records from database?

转载 作者:行者123 更新时间:2023-11-28 22:03:13 26 4
gpt4 key购买 nike

  • 我有一个表,我必须从中获取大约 700 万条记录,这也会达到 10 亿条记录(因为每天都会添加数据)
  • 我正在使用 mysql-python 连接到远程 MySQL 数据库

  • 我查询如下

cursor = conn.cursor()
cursor.execute(query)
return cursor

并尝试将它们打印为

sql = 'select * from reading table;' # has 7 million records
cursor = MySQLDB.execute(sql)
for row in cursor:
print row
  • 打印它需要很长时间

在服务器上,我看到进程正在运行

 PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                                                                                                                                                                                     
3769 mysql 20 0 1120m 276m 5856 S 125 1.7 2218:09 mysqld

问题使用 python 查询具有 {m,b} 亿条记录的表的有效方法是什么?

谢谢

最佳答案

我建议两种选择:

  1. 使用 SELECT OUTFILE 或什至使用 mysql 控制台将所需数据导入文件,然后使用该文件。

  2. 你应该明白,默认情况下,mysql 将整个结果集发送给客户端,客户端模仿数据是逐行读取的(尽管整个结果已经在内存中,如果有则失败)内存不足)。或者,可以在服务器端形成结果集。为此,您需要将 cursor=MySQLdb.cursors.SSCursor 参数添加到 MySQLdb.connect(有关详细信息,请参阅 http://mysql-python.sourceforge.net/MySQLdb.html)。

关于 python -mysqldb : How to efficiently get millions/billions of records from database?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9674924/

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