Веденин Красные глаза


Зарегистрирован: 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 секунд ИМХО менее затратно _________________ Написание конвекторов, парсеров, интеграции нескольких сайтов (в личку)
Тематические поисковые системы Рунета: Танцевальная, программиста, поиск книг |
|