Привет, ребята, У меня проблема: 1 процесс выполняет очень большой запрос и записывает результаты в файл, между процессами должен обновлять статус базы данных.python mysqldb несколько подключений
непервый священник научил: НЕТ ПРОБЛЕМ, псевдо-код:
db = mysqldb.connect()
cursor = db.cursor()
large = cursor.execute(SELECT * FROM VERYLARGETABLE)
for result in large.fetchall():
file.write(result)
if timetoUpdateStatus: cursor.execute(UPDATE STATUS)
проблема: при получении 9 миллионов результатов на "большой = cursor.execute (SELECT * FROM VERYLARGETABLE)" никогда не заканчивается ... я понял, граница на 2 миллиона записей в 4 столбцах, где сервер mysql завершил запрос через 30 секунд, но процесс python продолжает работать в течение нескольких часов ... это может быть ошибка в библиотеке MySQLDB Python.
SO SECOND TRY: db. функция запроса с db.use_results() и fetch_row():
db = mysqldb.connect()
cursor = db.cursor()
db.query(SELECT * FROM VERYLARGETABLE)
large = large.use_result()
while true:
for row in large.fetch_row(100000):
file.write(row)
if timetoUpdateStatus: cursor.execute(UPDATE STATUS) <-- ERROR (2014, "Commands out of sync; you can't run this command now")
так ТРЕТИЙ TRY использовал 2 MySQL соединения ... который не работает, когда я открыть второе соединение первым исчезает ....
какие-либо предложения ??
Да, это сделало мой день – TekTimmy