0

虽然有很多解决方案可以使用 python 将 mysql 表导出到 csv。我想知道这样做的最佳方法?目前我将大约 50 个表存储到 csv 中,这大约需要 47 分钟,并且还需要超过 16gb 的内存。

代码是:

sqlEngine = create_engine(f'mysql+pymysql://{MYSQL_READER_USERNAME}:%s@{MYSQL_READER_HOST}/{MYSQL_DB_NAME}' % urllib.parse.quote(f'{MYSQL_READER_PASSWORD}'), pool_recycle=3600)

def export_table(name, download_location):
    table = pd.read_sql(f'select /*+ MAX_EXECUTION_TIME(100000000) */ * from {name}', sqlEngine)
    table.to_csv(os.path.join(download_location, name + '.csv'), index=False)

tables = ['table1', ... , 'table50']

for table in tqdm(tables):
    print(f'\t => \t Storing {table}')
    export_table(table, store_dir)

我已经看到了许多存储到 csv 的方法,例如:

  • 使用光标
  • 使用 pyodbc 库
  • pandas 读取 sql 方法。

有没有其他方法或技术,哪一种最能减少内存或执行时间?

4

0 回答 0