перезапись уникальных строк в базе данных - это неправильный метод? - PullRequest
0 голосов
/ 01 марта 2012

У меня есть 15k объектов, которые мне нужно записывать в базу данных каждый день.Я использую cronjob для записи на сервер MySQL каждую ночь.Каждую ночь 99% этих 15 тыс. Объектов будут одинаковыми и будут однозначно идентифицироваться в БД.

Я установил правило БД, согласно которому не будет дублирующихся строк при указании уникального ключа.

Я НЕ хочу проверять существующую строку перед ее фактической вставкой.

Поэтому я решил вставлять все 15k объектов каждую ночь и разрешать mysql предотвращать дублирование строк ... (конечно, это будетвыдает ошибки).

Я делаю это, потому что, если я проверю уже существующую строку - это значительно снизит скорость.

Мой вопрос: есть ли что-то неправильное при вставке всех 15k одновременно иразрешить mysql для предотвращения дублирования?(без ручной проверки уже существующих строк) Существует ли порог, когда, если mysql выдает 1000 ошибок, он сам блокируется и отклоняет все последующие запросы?

, пожалуйста, помогите!

1 Ответ

3 голосов
/ 01 марта 2012

Использование INSERT IGNORE INTO... заставит MySQL отбросить строку без ошибки и сохранить строку уже существующей. Может быть, это то, что вы хотите?

Если вместо этого вы хотите перезаписать существующую строку, вы можете сделать INSERT INTO ... ON DUPLICATE KEY UPDATE .... См. документы

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