Я новичок в Python и Sqlite, так что я уверен, что есть лучший способ сделать это.У меня есть БД с 6000 строк, где 1 столбец является строкой XML 14K.Я хотел сжать все эти строки XML, чтобы уменьшить размер БД.К сожалению, приведенный ниже скрипт намного, намного медленнее, чем эта простая командная строка (которая занимает несколько секунд).
sqlite3 weather.db .dump | gzip -c > backup.gz
Я знаю, что это не то же самое, но он читает / конвертирует БД в тексти запусти gzip.Поэтому я надеялся, что этот сценарий будет работать с 10-кратной производительностью, но он больше работает в 1000 раз медленнее.Есть ли способ сделать следующий скрипт более эффективным? Спасибо .
import zlib, sqlite3
conn = sqlite3.connect(r"weather.db")
r = conn.cursor()
w = conn.cursor()
rows = r.execute("select date,location,xml_data from forecasts")
for row in rows:
data = zlib.compress(row[2])
w.execute("update forecasts set xml_data=? where date=? and location=?", (data, row[0], row[1]))
conn.commit()
conn.close()