Не существует варианта UPDATE
, который бы имел такое же поведение, по той простой причине, что он делал бы то же самое, что и INSERT ... ON CONFLICT
. Не беспокойтесь об имени.
Если у вас есть миллионы обновлений для каждой строки в день, вам следует гораздо больше беспокоиться о VACUUM
.
Если вы можете, не индексируйте атрибуты, которые будут часто обновляться, и создайте таблицу с fillfactor
ниже, чем 100. Вы можете получить намного более эффективные & ldauo; HOT updates & rdquo ;, которые значительно уменьшат количество записи на диск и VACUUM
требуется.
Обязательно настройте автовакуум на более агрессивный, уменьшив autovacuum_vacuum_cost_delay
.
Обратите внимание, что Вы не должны выполнять весь набор тестов каждый раз. Можно просто выполнить набор тестов для отдельного приложения путем выполнения manage.py test appname
(или для нескольких приложений сразу с manage.py test app1 app2 ...
).
Мой обычный рабочий процесс должен просто запустить тесты для приложения, я продолжаю работать, поскольку я работаю, и выполнение полный комплект, прежде чем я буду фиксировать свой следующий набор изменений.
Я не попробовал его, но была недавняя регистрация этого, как, предполагается, помогает, позволяя тестам быть выполненным в транзакциях, которые затем откатываются:
Вы можете запускать свои тесты, используя базу данных sqlite бэкэнд. Это не подходит для полного тестового прогона (так как db отличается), но для проверки работоспособности это экономит много времени. См .: http://mindlesstechnology.wordpress.com/2008/08/16/faster-django-unit-tests/