Я думал, что буду умным, и использую ExecutorCompletionService для параллелизации задач, которые вставляют кучу записей в базу данных Postgres. Мощно он отлично работает, и я вижу увеличение производительности. Однако время от времени он терпит неудачу с исключением первичного ключа. Скорее всего, из-за одновременных потоков, пытающихся создать записи одновременно. Есть ли грациозный способ справиться с этой ситуацией?Использование Java ExecutorCompletionService и Postgres вставки через MyBatis
0
A
ответ
0
Для создания первичных ключей необходимо использовать некоторый скоординированный и потокобезопасный способ. Лучшим вариантом, если ваш первичный ключ является числовым, является последовательность пользовательской базы данных - это безопасно и эффективно.
0
Оказывается, моя первоначальная проблема связана с тем, что последовательность отличается от количества записей в таблице. Фактически Postgres может создавать новые уникальные идентификаторы одновременно, насколько я могу судить. Никакой дополнительной кодировки не требуется.
Смежные вопросы
- 1. Mybatis Использование сгенерированных ключей для пакетной вставки
- 2. myBatis: использование манипуляторов типа в операторах вставки
- 3. Mybatis 3.1.1 функция вставки
- 4. Параллельные вставки и обновления postgres
- 5. Postgres Медленные и отложенные вставки
- 6. dropwizard + auto-reconnect + postgres + mybatis
- 7. Оптимизация вставки Postgres
- 8. Solr вставки Использование Java
- 9. Использование SqlSession в MyBatis
- 10. JAVA | mybatis | Вставка многомагистрали
- 11. как сделать mybatis вставки неопределенной таблицы и столбцы
- 12. Происходит забавная вещь ... ExecutorCompletionService
- 13. Postgres без ошибок и без вставки
- 14. Postgres последовательные значения вставки
- 15. Postgres вставки ошибок синтаксиса
- 16. Использование перечисления MyBatis
- 17. Функция Postgres для вставки массивов
- 18. Looping в запросе вставки в mybatis
- 19. Как использовать ExecutorCompletionService
- 20. Поддерживает ли Postgres и oracle порядок вставки?
- 21. Postgres - вставки и композитные внешние ключи
- 22. Postgres игнорировать вставки ошибки и нести оны
- 23. Использование postgres через ODBC в python 2.7
- 24. Как вернуть Id вставки хранимой процедуры + mybatis
- 25. Использование вложенных интерфейсов и картографа с MyBatis
- 26. Использование mutiple datasources в myBatis и Spring
- 27. Postgres Исключения и java
- 28. Ошибка вставки Postgres в ActiveRecord
- 29. Вызывать команды postgres через Java Runtime.getruntime.exec()
- 30. Как вставить JSON в Postgres через java?