从MySQL加载500万行到Pandas中

Der*_*unk 6 mysql pandas

我在坐在(本地)网络上的MySQL数据库中有500万行(所以快速连接,而不是在互联网上).

与数据库的连接工作正常,但如果我尝试做

f = pd.read_sql_query('SELECT * FROM mytable', engine, index_col = 'ID')
Run Code Online (Sandbox Code Playgroud)

这需要长时间.即使是分块chunksize也会很慢.此外,我真的不知道它是挂在那里还是确实检索信息.

我想问一下,对于那些在数据库上处理大数据的人来说,他们如何检索他们的Pandas会话数据?

难道是"聪明",例如,运行查询,以返回结果csv文件并加载成熊猫?听起来比它需要的更多.

fir*_*ynx 6

将-any-SQL 数据库中的表中的所有数据加载到 Pandas的最佳方法是:

  1. 使用COPY for PostgreSQL、SELECT INTO OUTFILE for MySQL 或其他方言的类似方法将数据从数据库中转储出来。
  2. 阅读使用熊猫CSV文件pandas.read_csv功能

连接器仅用于读取几行。SQL 数据库的强大之处在于它能够根据索引提供小块数据。

交付整个表是您使用转储做的事情。