Как вы хотите улучшить производительность, вы должны сделать блокировку в последний момент, насколько это возможно. Когда вы используете базу данных, вы можете использовать блокировку БД. У вас есть два варианта:
Select for update
, посмотрите Правильный способ выбора и обновления SQL Обратите внимание, что оба подхода позволяют вам использовать ресурсы БД более, чем программные. Это лучше, чем предлагаемый словарь, почему?
После дублирования данных в БД дублируются в словаре времени исполнения, вы вынуждены их синхронизировать, поэтому, если кто-то обновляет базу данных и добавляет новые id
вам нужно немедленно обновить словарь.
Конечно, это возможно для небольшого класса поддержки (например, репозитория), но как только ваш проект будет расти, некоторые из ваших коллег могут забыть эту информацию, и вы начнете находить такие ошибки.