В настоящее время я использую следующий запрос для вставки в таблицу только в том случае, если запись еще не существует, по-видимому, это приводит к сканированию таблицы. Он вставляет 28000 записей в течение 10 минут:Увеличение скорости INSERT
INSERT INTO tblExample(column)
(SELECT ? FROM tblExample WHERE column=? HAVING COUNT(*)=0)
Если изменить запрос к следующему, я могу вставить 98000 записей в течение 10 минут:
INSERT INTO tblExample(column) VALUES (?)
Но это не будет проверять, является ли запись уже существует.
Может ли кто-нибудь предложить другой способ запроса, чтобы скорость вставки была быстрее?
У вас есть уникальный индекс в столбце? Это ускорит запрос поиска и обеспечит ограничение (в случае, если вы пропустили его в своем коде). – Thilo
Спасибо @Thilo. Я взял основной ключ из таблицы, потому что я прочитал, что с PK увеличивается время, затраченное на вставку. Вы предполагаете, что я использую ПК и поймаю ошибку, если найден дубликат? – jdie8274j
Наличие PK замедляет вставку, но если вы не уверены, что данные уникальны, вам нужна эта проверка ограничений. Так что да, верните это. – Thilo