|
|
|
| Здравствуйте! Вопрос-Если кто знает как увеличить программно на PHP время соеденения с базой Mysql при загрузке большого количества информации а собственно большого прайс-листа через скрипт? | |
|
|
|
|
|
|
|
для: crash_overide
(24.03.2006 в 15:03)
| | Это у хостера надо спросить, как правило хостер выделяет 30 секунд на работу скрипта.
Если он не ограничивает тебя, то можешь вот такой инструкцией выделить сколько угодно времени.
set_time_limit(600); //в секундах | |
|
|
|
|
|
|
|
для: XPraptor
(24.03.2006 в 15:05)
| | Спасибо | |
|
|
|
|
|
|
|
для: crash_overide
(24.03.2006 в 15:15)
| | А где её надо прописать где прописано соеденение с базой данных? | |
|
|
|
|
|
|
|
для: crash_overide
(24.03.2006 в 15:17)
| | Это на базу не влияет, это влияет на загрузку страницы и время общее php кода.
Поэтому и пишется всегда в начале, до любого вывода в страницу чего-нить.
То есть, сразу после старта сессий и заголовков (если они есть). | |
|
|
|
|
|
|
|
для: XPraptor
(24.03.2006 в 15:19)
| | Вот на всякий случай:
<?php
session_start();
Header("Expires: Thu, 19 Feb 1998 13:24:18 GMT");
Header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
Header("Cache-Control: no-cache, must-revalidate");
Header("Cache-Control: post-check=0,pre-check=0");
Header("Cache-Control: max-age=0");
Header("Pragma: no-cache");
set_time_limit(600);
|
| |
|
|
|
|
|
|
|
для: XPraptor
(24.03.2006 в 15:19)
| | Еще раз спасибо! | |
|
|
|
|
|
|
|
для: crash_overide
(24.03.2006 в 15:17)
| | Если Вас волнует время связи с БД, а не время генерации ответа, значит Вы выводите не всю информацию, которую получаете от MySQL. А в этом случае стоит подумать о том, чтобы поручить фильтрацию данных серверу БД. | |
|
|
|
|
|
|
|
для: Trianon
(24.03.2006 в 15:23)
| | Тут Trianon прав. Нельзя так выбирать данные, чтобы не успевать вложится в отвеенное время.
Надо применять или условие, млм LIMIT для порционного вывода. | |
|
|
|
|
|
|
|
для: Trianon
(24.03.2006 в 15:23)
| | Trianon что то я непонял какую фильтрацию? | |
|
|
|
|
|
|
|
для: crash_overide
(24.03.2006 в 15:27)
| | не LIMIT понятно но это для выгрузки а мне наоборот целый прайс лист надо загрузить в базу | |
|
|
|
|
|
|
|
для: crash_overide
(24.03.2006 в 15:29)
| | Если идет процесс импорта в базу, его надо выполнять поблочно. То есть по несколько [десятков | сотен | тысяч ] строк на один запрос INSERT. Это сильно уменьшает и нагрузку и время выполнения. | |
|
|
|
|
|
|
|
для: crash_overide
(24.03.2006 в 15:27)
| | SELECT .... FROM ..... WHERE условие LIMIT с_какой_строки,сколько_строк | |
|
|
|
|
|
|
|
для: Trianon
(24.03.2006 в 15:33)
| | А, тогда ясно. Ты учитывай, что 2 мега тока можна за раз.
Поэтому лучше разбей на части по одному мегу и качай, иначе постоянно выпадать будешь из за превышения лимита. | |
|
|
|
|
|
|
|
для: Trianon
(24.03.2006 в 15:33)
| | Да нет Вы меня не поняли мне не выгрузка нужна а берется экселевский прайс лист и загружается в базу одновремено проверяя если такой товар существует то эта строка не загружается. Так проблема в том что неуспевается обрабатываться весь файл и обрывается загрузка | |
|
|
|
|
|
|
|
для: crash_overide
(24.03.2006 в 15:46)
| | А, тогда set_time_limit() спасет. | |
|
|
|
|
|
|
|
для: crash_overide
(24.03.2006 в 15:46)
| | Я то Вас прекрасно понял. А вот Вы - задачу - не уверен.
На всякий случай советую посмотреть, что делает оператор INSERT IGNORE | |
|
|
|
|
|
|
|
для: Trianon
(24.03.2006 в 15:59)
| | Да скорее всего при обработке csv от экселя, даже с INSERT IGNORE не уложишься в отведенное время.
Поэтому действительно надо увеличить время для работы скрипта. | |
|
|
|
|
|
|
|
для: XPraptor
(24.03.2006 в 16:05)
| | Если подсовывать серверу по одной строке в запросе - конечно не уложишься. А если блоками - вполне можно. А вот загружаемые куски стоит напилить так, чтобы 30 секунд хватало на всё. | |
|
|
|
|
|
|
|
для: Trianon
(24.03.2006 в 16:08)
| | Это точно :-) Файлик не мешало бы разбить. | |
|
|
|
|
|
|
|
для: Trianon
(24.03.2006 в 16:08)
| | И как мне блоками напилить? | |
|
|
|
|
|
|
|
для: crash_overide
(24.03.2006 в 16:11)
| | А сколько у Вас позиций в прайсе?
И какой примерно размер csv? | |
|
|
|