У меня есть таблица с 50 миллионами записей в Mysql. Я использую следующую команду для чтения записей 10 за раз, но при этом память выходит за пределы:
# create db connection
sqlEngine = create_engine('mysql+pymysql://user:password@127.0.0.1/db_name', pool_recycle=3600)
dbConnection = sqlEngine.connect()
# read data in chunks from large table
sql_query = "select col1, col2 from table_with_50_million_records"
chunks = pd.read_sql(sql_query, dbConnection, index_col=None, chunksize=10)
# iterate over large table in chunks
for chunk in chunks:
print (chunk)
break
# close connection
dbConnection.close()
Теперь этот код просто пытается прочитать первые 10 записей из большой таблицы и Выход. Тем не менее, код работает вечно, а память выходит из-под контроля. Как это исправить?
PS: Этот код прекрасно работает, когда я заменяю table_with_50_million_records
на table_with_1000_records
.