У меня проблемы со скриптом Python, который просто анализирует файл CSV построчно, а затем вставляет каждую строку в таблицу MySQL с помощью цикла FOR:
f = csv.reader(open(filePath, "r"))
i = 1
for line in f:
if (i > skipLines):
vals = nullify(line)
try:
cursor.execute(query, vals)
except TypeError:
sys.exc_clear()
i += 1
return
Где запрос имеет форму:
query = ("insert into %s" % tableName) + (" values (%s)" % placeholders)
Это прекрасно работает с каждым файлом, для которого он используется, за одним исключением - самым большим файлом. Каждый раз он останавливается в разных точках - иногда он достигает 600 000 записей, иногда 900 000. Но в общей сложности около 4 000 000 записей.
Я не могу понять, почему он это делает. Тип таблицы - MyISAM. Много свободного места на диске. Таблица достигает около 35 МБ, когда она останавливается. max_allowed_packet
установлен на 16 МБ, но я не думаю, что это проблема, поскольку он выполняется построчно?
У кого-нибудь есть идеи, что это может быть? Не уверен, что за это отвечает Python, MySQL или модуль MySQLdb.
Заранее спасибо.