MYSQL уникальный VS php SELECT затем вставьте .. Что быстрее?

Что быстрее, если я хочу сохранить уникальное поле в таблице

Выполнение запроса выбора и вставка запроса

ИЛИ непосредственно выполняет запрос вставки, но вместо этого в таблице есть уникальное поле

1

Решение

Если вы хотите сохранить уникальный столбец в базе данных, используйте для этого механизмы базы данных. Создайте уникальный индекс или уникальное ограничение для столбца. Работа с база данных, не против этого.

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

Конечно, для этого есть обходные пути, обычно включающие транзакционную логику или блокировку таблиц. Оба из них вводят дополнительные издержки, что снижает производительность.

Просто создайте уникальный столбец и не беспокойтесь об уникальности — база данных беспокоит вас.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]