Предполагая, что я буду выполнять каждые 2 секунды запрос, должен ли я открывать соединение по каждому запросу или должен ли я поддерживать соединение до тех пор, пока приложение (сервер) не остановится?Должен ли я открывать соединение MySQL каждый запрос или всегда?
ответ
По моему опыту, установление соединений вряд ли станет узким местом для сервера mysql (накладные расходы на подключение довольно низки в mysql). Было сказано, что повторное использование существующих соединений часто является подходящим подходом, но для этого требуются некоторые осторожные соображения: если сервер базы данных временно недоступен, код должен повторно подключаться; если сервер заменен, он должен повторно подключаться (реализация mysql имеет тенденцию к отказоустойчивым решениям, а не истинной высокой доступности); если приложение использует несколько подключений к mysql, вы должны быть уверены, что не должны пересекать свои соединения между пользователями или сеансами (активная база данных, часовой пояс, кодировка и т. д. являются переменными сеансов, по существу связанными с соединением). Если вы не справитесь с надежностью подключения к повторному соединению в этих и других случаях, создание нового соединения каждые 2 секунды может обеспечить эту прочность бесплатно.
Одним словом, краткосрочные связи могут быть менее очевидными. Я бы не стал добавлять интеллект к поддержанию постоянного соединения, если у вас нет оснований полагать, что он действительно существенно повлияет на ваше дело (например, тесты).
- 1. Должен ли я всегда открывать сеанс?
- 2. Должен ли я каждый раз открывать базу данных IDB или открывать один экземпляр?
- 3. Открывать соединение mysql
- 4. Должен ли я поддерживать постоянное соединение redis?
- 5. Должен ли я использовать постоянное соединение mysql?
- 6. Должен ли я проверить соединение MySQL с is_resource или mysqli_ping?
- 7. Должен ли я поддерживать соединение SerialPort открытым?
- 8. Должен ли я всегда проверять ошибку MySQL?
- 9. SoapHttpClientProtocol, вызывает ли метод каждый раз открывать новое соединение?
- 10. Должен ли я открывать файл снаружи или внутри функции?
- 11. Должен ли я всегда использовать connection.close
- 12. Должен ли я хранить соединения или я должен создавать новые подключения каждый раз?
- 13. Должен ли я всегда удалятьEventListener?
- 14. Должен ли я создать таблицу или запрос?
- 15. Как сделать этот запрос в MySQL, который я должен использовать, используя левое соединение или правое соединение или внутреннее соединение?
- 16. Должен ли я продолжать соединение JDBC или нет?
- 17. Должен ли я держать соединение сокета открытым
- 18. Должен ли администратор Entity закрывать каждый запрос?
- 19. Groovy SQL: Должен ли я вручную закрыть соединение Mysql
- 20. Должен ли я всегда звонить Page.IsValid?
- 21. SQL - Должен ли я использовать соединение?
- 22. Должен ли я всегда использовать MySQL InnoDB поверх MyISAM?
- 23. Должен ли я обновлять каждый куки каждый раз?
- 24. Стоит ли открывать http-соединение в интранете?
- 25. Должен ли я закрывать cURL или нет?
- 26. Лучше ли иметь всегда открытое соединение или лучше устанавливать соединение каждый раз, когда что-то нужно?
- 27. Должен ли я открывать и закрывать сокеты за транзакцию?
- 28. MySQLi - Должен ли я вводить переменную каждый раз? [PHP]
- 29. Должен ли я использовать внутреннее соединение здесь (MySQL)
- 30. Должен ли я закрывать соединение mySQL между вызовами метода?
Предполагая, что проекты растут, и у меня будет около 200 запросов каждую секунду? – magl1te
Я не следую. Выполняете ли вы запрос каждые 2 секунды или для каждого соединения, которое в среднем происходит каждые две секунды? Это очень разные вещи. –
В первом примере я выполняю 1 запрос каждые 2 секунды. Во втором примере (комментарий выше) я выполняю 200 запросов в секунду. – magl1te