Я пытаюсь сохранить некоторые данные, сгенерированные скриптом python в базе данных MySQL. По существу, я использую следующие команды:oursql очень медленно вставляет данные
con = oursql.connect(user="user", host="host", passwd="passwd",
db="testdb")
c = con.cursor()
c.executemany(insertsimoutput, zippedsimoutput)
con.commit()
c.close()
где
insertsimoutput = '''insert into simoutput
(repnum,
timepd,
...) values (?, ?, ...?)'''
около 30 000 строк вставляются и около 15 столбцов. Вышеуказанное занимает около 7 минут. Если я использую MySQLdb вместо oursql, это занимает около 2 секунд. Почему эта огромная разница? Предполагается ли это, что это сделано другим способом в нашей книге, наш oursql просто медленный? Если есть лучший способ вставить эти данные с помощью oursql, я был бы признателен, если бы вы могли сообщить мне об этом.
спасибо.
Вы посмотрели на запрос, который делает oursql? –
@Simeon Я не уверен, как это найти. Не могли бы вы объяснить? – Curious2learn
Вы можете посмотреть в журналах сервера mysql (https://dev.mysql.com/doc/refman/5.1/en/server-logs.html). Из разницы во времени, которую вы наблюдаете, я бы предположил, что oursqls executemany делает 30k однострочных вставок, а MySQLdb вставляет сразу несколько строк. – l4mpi