Как уменьшить время подключения MySQL - PullRequest
4 голосов
/ 21 июля 2010

У меня есть страница JSP.Раньше он работал хорошо, но становится очень медленным (15 секунд для загрузки) после того, как системная команда обновила сервер ОС Solaris 10.

Я проверил все запросы на этой странице, и каждый запрос работает нормально.На самом деле это все очень простые запросы.И в каждой связанной таблице всего около 300 записей.

Единственное особенное, на этой странице было около 60 соединений.Мне удалось уменьшить количество соединений на 30 после того, как я обнаружил, что это очень медленно.После этой оптимизации время загрузки уменьшилось до 6 секунд.Но все еще очень медленно!И что еще хуже, я больше не могу уменьшать соединения, если не хочу перестраивать половину приложения.

Другая страница JSP (не в том же приложении) работала хорошо, но теперь она становитсямедленно тоже.У него только 1 соединение, но эта страница очень чувствительна ко времени.Таким образом, я вижу, что это становится медленнее.

Может кто-нибудь сказать мне, как настроить mysql или / и tomcat, чтобы уменьшить время соединения mysql?

Ответы [ 3 ]

3 голосов
/ 21 июля 2010

Вы говорите «соединение», когда имеете в виду «запрос»?Или вы создаете новое соединение с базой данных для каждого запроса?Вы не должны этого делать.На сервере приложений Tomcat вы должны использовать пул соединений , что значительно сократит накладные расходы на соединения.

Другая распространенная проблема заключается в том, что MySQL Server пытается разрешить имя хоста вашего клиента из егоАйпи адрес.Это называется разрешением имени хоста DNS, и это может быть источником больших накладных расходов при создании нового соединения.Вы можете настроить свой сервер MySQL на пропустить разрешение имени хоста DNS без особых недостатков.

0 голосов
/ 04 января 2013

Как вы ссылаетесь на сервер в строке подключения? Вы используете "localhost" или что-то? Попробуйте заменить это на "127.0.0.1", например, что пропустит разрешение имени.

0 голосов
/ 21 июля 2010

Почему вы делаете более одного подключения к базе данных на загрузку страницы?Это не должно быть общим случаем.Сделайте одно соединение и используйте его для всей визуализации этой страницы.

...