История изменений
Исправление
Novator,
(текущая версия)
:
Во-первых, чтобы экономить ОЗУ, в массив выгружай не все поля, а только id:
cur.execute("select id from files")
Во-вторых, выборку запрашивай сразу сортированную, так удобнее искать «провалы»:
cur.execute("select id from files order by id")
В-третьих, если файл большой, можешь ограничить число записей:
lim=1000
cur.execute("select id from files limit ? order by id", [lim])
lim=1000
firstid=max_id_from_previous_array
cur.execute("select id from files where id > ? limit ? order by id", [firstid,lim])
Другой вариант, без limit - просто увеличивать диапазоны:
firstid=max_id_from_previous_array
lastid=max_id_from_previous_array+1000
cur.execute("SELECT id FROM files WHERE id > ? AND id <= ? ORDER BY id ASC", [firstid,lastid])
Импровизируй :)
Исходная версия
Novator,
:
Во-первых, чтобы экономить ОЗУ, в массив выгружай не все поля, а только id:
cur.execute("select id from files")
Во-вторых, выборку запрашивай сразу сортированную, так удобнее искать «провалы»:
cur.execute("select id from files order by id")
В-третьих, если файл большой, можешь ограничить число записей:
lim=1000
cur.execute("select id from files limit ? order by id", [lim])
lim=1000
firstid=max_id_from_previous_array
cur.execute("select id from files where id > ? limit ? order by id", [firstid,lim])
Другой вариант, без limit - просто увеличивать диапазоны:
firstid=max_id_from_previous_array
lastid=max_id_from_previous_array+1000
cur.execute("SELECT id FROM files WHERE id > ? AND id <= ? ORDER BY id ASC", [firstid,lastid])
Импровизируй :)