@xxx44yyy

Что быстрее: проверять есть ли в БД запись или на уровне БД сделать ограничение на уникальность?

Получаю тучу данных, содержащих 3 поля: a, b, c. Связь поля a и b - уникальна. Т.е. в рамках таблицы - не может быть другой записи, с таким же a и b.

И вот встал вопрос, а как проверять, что данные уже есть? Вот мне пришла пачка из 10тыс строк в JSON. Хочу положить её в БД, но делать каждый раз check exist для каждой записи (т.е. отправить 10тыс запросов) - как-то не хорошо.

Второй вариант - это поставить ограничение в БД. Типа вот такого в Postgres на две колонки.

Формально, со стороны кода, думаю лучше будет если появится ограничение в БД, потому как можно будет эксепшены связанные с конфликтами просто игнорировать. Т.е. делать добавление и не смотреть, получилось добавить или нет.

Как думаете?

Пример данных:

col_a | col_b | col_c
-------+--------+-------
2010-01-01 | 1 | 1.1
2010-01-02 | 2 | 342.2
2010-01-03 | 3 | 231.2
2010-01-04 | 4 | 1.6312
2010-01-05 | 5 | 0.943
  • Вопрос задан
  • 117 просмотров
Решения вопроса 1
DevMan
@DevMan
кагбе уникальный индекс для этого и придуман.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы