Оптимизация запроса INSERT + маленький изврат

BigWindow

Новичок
Оптимизация запроса INSERT + маленький изврат

Всем привет!

Собственно сразу перейду к описанию проблемы:

Необходимо добавлять в базу только уникальные данные. Для этого сделал уникальный индекс для поля T_Name.
Далее в коде программы выполняю запрос:
[sql]
INSERT INTO `table` (T_Name) VALUES ('Bush-Mu*ak');
INSERT INTO `table` (T_Name) VALUES ('Candoliza-Monkey');
INSERT INTO `table` (T_Name) VALUES ('Klinton-Durak');
...
[/sql]

Я использую именно такой запрос потому, что если в таблице уже есть имя Bush-Mu*ak, то запрос всё равно выполнит добавление оставшихся двух строк. Тогда как следующий запрос не выполнится вовсе:

[sql]
INSERT INTO `table` (T_Name) VALUES ('Bush-Mu*ak'), ('Candoliza-Monkey'), ('Klinton-Durak');
[/sql]

К чему это я? Есть подозрение, что запрос №2 выполнится быстрее.

В итоге хотелось бы услышать ваше мнение. Как быть?
1. Оставить все как есть?
2. Оптимизировать запрос?
3. Изменить логику добавления в БД?
 

dr-sm

Новичок
13.2.4. INSERT Syntax
- Specify IGNORE to ignore rows that would cause duplicate-key violations.

те insert ignore
 

BigWindow

Новичок
Автор оригинала: TutanXamoN
SELECT BENCHMARK
SELECT BENCHMARK не поддерживает INSERT запросы. Или я не прав?

-~{}~ 03.03.08 12:04:

Автор оригинала: dr-sm
13.2.4. INSERT Syntax
- Specify IGNORE to ignore rows that would cause duplicate-key violations.

те insert ignore
Шикарно! dr-sm, респект за совет! :)

Итак, полностью перешел на второй запрос. Итого, при добавлении 50 записей, запрос #2 выполняется примерно в 40 раз быстрее запроса #1.

Перевооружил все свои скрипты под запрос #2.

dr-sm, спасибо еще раз!
 
Сверху