我使用简单的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脚本或其他东西来加快速度?
1条答案
按热度按时间ufj5ltwl1#
尝试在使用
to\_sql
方法时添加fast\_executemany=True
参数,您可以将方法参数设置为multi,并将fast_executemmany =True参数添加到create_engine函数中。这在文档中提到。此外,使用较大的
chunksize
,因为它用于批量插入。字符串