EOMY.NET
Хостинг EOMY.NET: Форум поддержки
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
RSS Feed  

mySQL соединение: закрываеть или нет.

 
Начать новую тему   Ответить на тему    Список форумов EOMY.NET -> Программирование для WEB
mySQL соединение: закрываеть или нет.
Автор Сообщение
lazutov
while (1==1);
Последний герой


Зарегистрирован: 30.04.2007
Сообщения: 3840

111220 Монеты

СообщениеДобавлено: Пт, 12 Сен, 2008 03:01    Заголовок сообщения: mySQL соединение: закрываеть или нет. Ответить с цитатой

Собственно ситуация:
Есть долгоиграющий скрипт(от нескольких часов до суток). Он запускается и 2-3 раза в минуту UPDATE-ит 1 запись в БД.
Копий таких скриптов запущено несколько (2-10).
Вопрос: что лучше: Держать открытый коннект или закрывать/открывать при каждом запросе.
Буду благодарен за оценку ситуации и комментарии.
_________________
сервис DNS | разные http, DNS и прочие утилиты
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Веденин
Красные глаза
Красные глаза


Зарегистрирован: 17.05.2007
Сообщения: 2066
Откуда: Самара
11733 Монеты

СообщениеДобавлено: Пт, 12 Сен, 2008 04:55    Заголовок сообщения: Re: mySQL соединение: закрываеть или нет. Ответить с цитатой

lazutov писал(а):
Вопрос: что лучше: Держать открытый коннект или закрывать/открывать при каждом запросе

Не скажу за связку MySQl/PHP, но мой опыт работы с базами данных говорит примерно следующие: закрывать/открывать коннект операция довольно дорогостоящая по времени, держать открытый коннект тоже серьезно потребляет ресурсы процессора и память (SQl постоянно мониторит соединение ожидая запросов + выделяет под него кеш памяти).
Если запросы проиходят постоянно конечно лучше держать открытый коннект, если сначала одна группа запросов через 20 минут вторая, тогда однозначно лучше закрывать.
Вообще оптимально открыть коннект получить всю необходимую информацию, закешировать её (либо в массив памяти, либо просто в файл), закрыть коннект, выполнить всю работу сохраняя результаты в памяти или файле, потом уже открывать коннект и добавлять в БД. Кстати тысяча одинаковых инсертов один за другим выполнится быстрее, чем с промежутками, т.к. большинство SQl Server'ov кешируют запросы.
Не знаю как будет работать MySQL так как он специально разрабатывался с учетом быстрых соединений и запросов. Всегда проще сделать несколько тестовых вариантов и посчитать время работы и загрузку памяти и процессора.

Цитата:
Есть долгоиграющий скрипт(от нескольких часов до суток). Он запускается и 2-3 раза в минуту UPDATE-ит 1 запись в БД.

По моему лучше собрать все записи в array или файл и уже в конце работы залить одним разом на сервер.
Если это невозможно я бы закрывал соединение, открытие соединение раз в 20 - 30 секунд ИМХО менее затратно
_________________
Написание конвекторов, парсеров, интеграции нескольких сайтов (в личку)

Тематические поисковые системы Рунета: Танцевальная, программиста, поиск книг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов EOMY.NET -> Программирование для WEB Часовой пояс: GMT
Страница 1 из 1

 


EOMY TOP 100 Rambler's Top100   Рейтинг@Mail.ru    



Powered by phpBB © 2001, 2005 phpBB Group


Рейтинг SIMPLETOP.NET