bulk insert mysql – могу ли я использовать предложение ignore? есть ли ограничение на нет. записей для массовой вставки?

У меня есть куча данных, которые я хочу вставить, и я решил использовать массивную вставку для mysql.

вставить в друзья (запрос, приятель) значения (значение1, значение2), (значение2, значение1), (значение3, значение4), (значение4, значение3), …

я хотел бы знать следующее:

1) Можно ли игнорировать? например

вставить игнорировать значения друзей (requestor, buddy) (значение1, значение2), (значение2, значение1), (значение3, значение4), (значение4, значение3), …

что произойдет, если у меня будет дубликат? будет ли он а) не вставлять все? б) вставить записи перед дублированной записью и STOP обрабатывать данные после этого? c) игнорировать дубликат и продолжать с остальными?

2) существует ли ограничение на no. записей я могу использовать для объемной вставки, как это?

Спасибо.

Да, вы можете использовать ключевое слово «ignore», и оно просто игнорирует повторяющиеся ошибки. Он будет вставлять каждую строку, которая может, пропускать те, которые приведут к дублированию (и это не остановит обработку данных.) Если вы сделаете что-то вроде этого (где мы предполагаем, что первый столбец является первичным ключом):

вставить игнорировать на значения c (1,1), (2,2), (3,3), (3,5), (4,5);

Тогда это означает, что (3,3) будет вставлено и (3,5) не будет. Все, кроме (3,5), будут вставлены (при условии свежей таблицы).

Вероятно, нет жесткого ограничения, но вам может понадобиться провести тестирование, чтобы увидеть, где вы должны нарисовать линию, исходя из ваших потребностей.

Изменить. Кажется, что MySQL имеет настраиваемый предел размера SQL-запросов, причем по умолчанию используется 1 МБ. Дополнительная информация: http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_query_cache_limit .

Существует также предел в 50 000 строк, который может иметь запрос INSERT.