加快Pandas数据框架到MySQL数据库的快速查询

uwopmtnx  于 6个月前  发布在  Mysql
关注(0)|答案(1)|浏览(94)

我使用简单的to_sql pandas方法来保存框架到MySQL数据库中:

engine = create_engine('mysql+mysqlconnector://xxxx:xxxxx@localhost:3306/db_qa')

df.to_sql('my_table', con=engine, if_exists='replace', index=False, chunksize=120, method='multi')

字符串
然而,这种方法不是很快。对于一个10000行和42列的小内存块,保存大约需要3分钟。它应该比这快得多。
我在GCP(SQL示例)上运行MySQL数据库,并在一个sperate VM上运行一个云SQL代理,以允许连接到云中的SQL示例。
我试图找出什么可以检查的查询.我已经尝试删除所有的None值从框架,但它并没有加快查询在所有.我还尝试了chunksizes,发现对我的情况下,120是最快的.更大的chunksizes慢得多.
我也在GCP上检查SQL示例的使用情况,但我没有发现任何东西处于峰值使用或资源耗尽状态。有没有其他方法可以使用python脚本或其他东西来加快速度?

ufj5ltwl

ufj5ltwl1#

尝试在使用to\_sql方法时添加fast\_executemany=True参数,您可以将方法参数设置为multi,并将fast_executemmany =True参数添加到create_engine函数中。这在文档中提到。
此外,使用较大的chunksize,因为它用于批量插入。

engine = create_engine('mysql+mysqlconnector://xxxx:xxxxx@localhost:3306/db_qa?fast_executemany=true')

chunksize = 1000  # Adjust the chunk size based on your data
df.to_sql('my_table', con=engine, if_exists='replace', index=False, chunksize=chunksize)

字符串

相关问题