Действительно ли более эффективно всегда выполнить запрос на удаление или проверить, существует ли та информация сначала

Действительно ли более эффективно всегда выполнить Запрос на удаление по умолчанию, существует ли запись или нет, например, для удаления имени пользователя после определенного промежутка времени (DELETE * from table WHERE username='user'), или если Вы сначала проверяете, существуют ли строки, которые будут удалены, с помощью a SELECT запрос и проверка mysql_num_rows.

Что использует больше ресурсов процессора на стороне сервера?

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

6
задан DVK 9 April 2010 в 04:28
поделиться

4 ответа

Удаление более эффективно, поскольку система занимает столько же времени (и буквально выполняет ту же работу) на поиск строк для удаления, что и при выборе.

Однако, если вы хотите, чтобы при удалении нулевых строк использовалась особая логика, вы можете использовать функцию ROW_COUNT () и проверить, является ли он нулевым после удаления.

Также см. ответ здесь .

10
ответ дан 9 December 2019 в 22:31
поделиться

Нет необходимости проверять, потому что MySQL все равно сделает эту проверку за вас. Проверка будет еще одним дополнительным запросом, который вам действительно не нужен, так как DELETE работает сам по себе, и если найденная запись будет удалена.

3
ответ дан 9 December 2019 в 22:31
поделиться

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

-2
ответ дан 9 December 2019 в 22:31
поделиться

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

0
ответ дан 9 December 2019 в 22:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: