Python + SQLAlchemy: удаление занимает в 250 000 раз больше времени, чем запрос тех же данныхPython

Программы на Python
Anonymous
Python + SQLAlchemy: удаление занимает в 250 000 раз больше времени, чем запрос тех же данных

Сообщение Anonymous »

Я получаю доступ к базе данных PostGres, используя Python и SQL ALchemy. Не могу понять, как своевременно удалить. Запрос выполняется быстро, удаление занимает в 250 000 раз больше времени
У меня есть таблица «RP», содержащая 92 миллиона строк. Я пытаюсь удалить некоторые из них.
У меня есть код, который находит объекты, которые я хочу удалить, который работает и работает быстро, по сути:

Код: Выделить всё

import sqlalchemy as sa
...
with Session(engine, autobegin=True) as session:
...
r_count = 0
for image in images:
sub_r = sa.select(RP).filter_by(d_id=dive_image.id)
count = session.execute(sa.select(sa.func.count()).select_from(sub_roi)).scalar_one()
r_count += count
#print timing and count info here
Этот цикл выполняется примерно 500 раз за примерно 0,2 секунды, каждый раз считая примерно 10–200 отдельных строк, всего около 70 000 строк, которые я хочу удалить.Когда я добавляю команду удаления ниже, это занимает гораздо больше времени. Каждый из 500 проходов через цикл, выполнение которого первоначально занимало

Подробнее здесь: https://stackoverflow.com/questions/785 ... -same-data

Вернуться в «Python»