Когда мне нужно зафиксировать производительность базы данных в Flask Sqlalchemy - PullRequest
0 голосов
/ 24 марта 2020

решение 1 (коммит снаружи для l oop)

id_lists = [1, 2, 3, 4, 5, 6, 7] # id lists
for i in id_lists:
    item = TableName.query.get(i)
    value = long_execution_time_function() # this will take much time
    item.field1 = value
db.session.commit()

решение 2 (коммит внутри для l oop)

id_lists = [1, 2, 3, 4, 5, 6, 7] # id lists
for i in id_lists:
    item = TableName.query.get(i)
    value = long_execution_time_function() # this will take much time
    item.field1 = value
    db.session.commit()

Какой из них является хорошим решением? (Особенно в аспекте базы данных, таком как блокировка таблиц и т. Д. c. Моя основная цель - слишком уменьшить блокировку БД, насколько это возможно)

Пожалуйста, предположите, что во время выполнения приведенного выше кода некоторые запросы к базе данных будут выполняться для других пользователей. А также таблицы будут иметь некоторые отношения друг с другом.

Пожалуйста, дайте мне знать, какой из них лучше и почему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...