Назад | Перейти на главную страницу

Соединения MySQL - RAM или обработка?

Я знаю, что запросы используют больше обработки, но само соединение использует больше оперативной памяти, чем обработка?

«Само соединение» будет использовать очень мало чего-либо по сравнению с мощностью современных машин - это то, что вы делаете с соединениями, что имеет значение.

«Запросы требуют большей обработки» - упрощение, вводящее в заблуждение. Если ваши запросы хорошо оптимизированы, вы обычно обнаружите, что оперативная память является ключевой (поэтому сервер БД может хранить большой рабочий набор данных и индексные страницы, доступные для быстрого поиска), за которым следует пропускная способность ввода-вывода (чтобы служба БД получала быстрые ответы когда ему необходимо получить доступ к диску, потому что данные, которые ему нужны, не находятся в ОЗУ или когда он записывает). После этих двух затем вы беспокоитесь об использовании ЦП, поскольку некоторым запросам действительно требуется значительное количество ресурсов ЦП для выполнения своей работы, когда данные для работы находятся в ОЗУ.

Есть накладные расходы в создание соединение, поэтому стандартная рекомендация делать как можно больше в одном соединении, а не отбрасывать и воссоздавать его для каждого запроса (вот почему большинство библиотек SQL реализуют пул соединений), но эти накладные расходы обычно не связаны с процессором, памятью или вводом / выводом. Связано с O - обычно это вопрос задержки связи (рукопожатие между клиентом и сервером, запрос и отправка деталей аутентификации, служба БД общается с другими службами, такими как LDAP, если аутентификация выполняется через них, и т. Д.).