Существует ли общепринятая практика массовой вставки значений, которые не существуют в таблице, без автоинкремента при попытке вставить уже существующую строку?
Отличный ответ для случая вставки из одной строки:
Запрет автоматического увеличения при вставке дубликата MySQL
Однако для эффективности вставки я бы хотел вставить большое количество строк с помощью одной команды SQL. (т.е.: вставьте в myBigTable VALUES ((value1_row1, value2_row1), (value1_row2, value2_row2) ...)
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:
Я хотел бы, чтобы все идентификаторы были доступны, поскольку моя таблица потенциально может стать очень большой. Изменение размера переменной auto_increment на BIGINT будет последним средством. Мое приложение вставки будет пытаться вставлять большое количество уже существующих строк на регулярной основе (например, обновления цен на акции), поэтому у меня будет пропущено большое количество автоматически увеличенных идентификаторов.
ПОЧЕМУ Я ИСПОЛЬЗУЮ AUTO-INCREMENT:
Я считаю, что для скорости запросов я должен использовать целочисленный индекс в моей (очень большой) таблице в качестве первичного ключа вместо комбинации строковых полей. Я также считаю, что я должен использовать auto_increment, поэтому MySQL обрабатывает параллелизм для меня.