Действительно ли более эффективно всегда выполнить Запрос на удаление по умолчанию, существует ли запись или нет, например, для удаления имени пользователя после определенного промежутка времени (DELETE * from table WHERE username='user'
), или если Вы сначала проверяете, существуют ли строки, которые будут удалены, с помощью a SELECT
запрос и проверка mysql_num_rows
.
Что использует больше ресурсов процессора на стороне сервера?
Очевидно, один подход содержит больше кода, но я задавался вопросом, если бесспорный mysql, операции использовали намного больше ЦП, чем другие.
Удаление более эффективно, поскольку система занимает столько же времени (и буквально выполняет ту же работу) на поиск строк для удаления, что и при выборе.
Однако, если вы хотите, чтобы при удалении нулевых строк использовалась особая логика, вы можете использовать функцию ROW_COUNT () и проверить, является ли он нулевым после удаления.
Также см. ответ здесь .
Нет необходимости проверять, потому что MySQL все равно сделает эту проверку за вас. Проверка будет еще одним дополнительным запросом, который вам действительно не нужен, так как DELETE работает сам по себе, и если найденная запись будет удалена.
Не обращая внимания на эффективность времени и времени выполнения и глядя на читабельность программы, гораздо легче понять и логически проще читать, если у вас есть функции, чтобы сначала проверить, существуют ли данные, а не напрямую вызывать функцию удаления. Таким образом, вы можете добавить дополнительные функции проверки или опции подтверждения.
Я думаю, что обычное удаление довольно хорошо понимается как «успешное», даже если никакие записи не затрагиваются в области операций на основе наборов.