У меня возник вопрос в течение некоторого времени относительно запросов MySQL. Я разработал систему, которая требует, чтобы пользователь удалял сообщение, также должно быть удаление информации из других таблиц. Вопрос сводится к следующему: мне лучше использовать метод, который удаляет все строки из нескольких таблиц в ОДНОМ запросе или более интенсивно использует ресурсы для выполнения нескольких запросов для выполнения одного и того же действия? Одна из причин моего вопроса - это сообщение: Mysql - delete from multiple tables with one query. Кажется, из ответов, которые испытывают кодеры, нет необходимости выполнять действие в одном запросе. Фактически, из этого сообщения кажется, что подход удаления нескольких строк из нескольких таблиц в одном запросе был более ресурсоемким: How to delete from multiple tables in MySQL?. Мои мысли всегда заключались в том, что если я могу сделать все это в одном запросе, это будет менее ресурсоемким. Это был мой общий подход к CRUD - хотя у меня теперь есть сомнения относительно того, насколько уместен этот подход. Заранее спасибо за вашу помощь!MySQL - Несколько запросов по сравнению с одним запросом
ответ
Почему бы не использовать foreign keys с ON DELETE CASCADE? Тогда сам MySQL автоматически удалит все связанные строки.
Если вам нужно удалить его вручную, я бы пошел с несколькими операторами DELETE в transaction.
Это действительно отличная информация - и я обязательно буду больше смотреть. Вероятно, это решит многие из проблем, которые я сейчас рассматриваю. Мой вопрос больше касается того, почему или почему бы не делать несколько запросов против одного. – user791187
@ user791187 1) Несколько запросов DELETE легче читать и обслуживать. 2) Синтаксис для удаления из нескольких таблиц сразу не является стандартным SQL и отличается между РСУБД. 3) Удаление строк обычно не является узким местом приложения. – ShiraNai7
- 1. извлечение запросов MySQL несколько записей с одним запросом
- 2. MYSQL Несколько COUNT() с одним запросом
- 3. Несколько небольших запросов по сравнению с одним длинным запросом. Какой из них эффективнее?
- 4. MySQL выбрать несколько таблиц с одним запросом
- 5. несколько таблиц mysql по сравнению с одним дизайном таблицы
- 6. Несколько, если условия по сравнению с одним
- 7. MySQL: несколько запросов с одним выходом
- 8. Использование множественного запроса базы данных по сравнению с одним запросом базы данных в MySQL
- 9. Вставить несколько строк одним запросом mysql
- 10. Как обновить несколько таблиц одним запросом mysql?
- 11. Как обновить несколько строк одним запросом с помощью MySQL?
- 12. mysql несколько запросов для достижения сравнения за год по сравнению
- 13. Объедините результаты нескольких запросов с одним запросом
- 14. Проблемы с производительностью mysql-запроса по сравнению с запросом оракула
- 15. Использование grequests с одним запросом
- 16. Как обновить несколько строк с одним запросом MySQL в python?
- 17. Объединение запросов по одной и той же таблице одним запросом
- 18. MySQL, обновление нескольких таблиц с одним запросом
- 19. Вставьте несколько похожих строк с одним запросом в MySQL
- 20. MySQL INSERT INTO: Несколько строк с одним запросом
- 21. Mysql постепенно обновляет строки с одним запросом
- 22. Несколько файлов на CDN по сравнению с одним файлом локально
- 23. Несколько вариантов выбора по сравнению с одним выбором, где OR
- 24. Как обновить несколько таблиц с одним запросом
- 25. Загрузите несколько изображений одним запросом
- 26. Заменить несколько полей одним запросом
- 27. Эффективность перколятора ElasticSearch по сравнению с запросом
- 28. Несколько циклов с одним запросом ajax jquery
- 29. Entity Framework несколько счетчиков с одним запросом
- 30. Отправить несколько форм с одним запросом
Единственный ответ, о котором я действительно могу думать, это «это зависит». –
Какие ресурсы? Чисто те, что находятся в базе данных или на вызывающем сервере. Ресурсы для отправки запроса на сервер могут быть значительными. – Kickstart
@Kickstart - спасибо. Это значит, что локальная обработка запроса является интенсивной? Так вы бы рекомендовали только сделать один запрос? – user791187