[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: оптимизация fgetcsv
mefistofel
Здравствуйте

вопрос к гуру php

есть код
PHP
if (isset($_FILES['zomm'])) {
        
    
$add_baza $_FILES['zomm']['tmp_name'];
    
    if (!
$handle fopen("$add_baza""r")) {

        exit(
'немогу найти файл = короче косяк с файлом');
    
 };

while ((
$data fgetcsv($handle10000"~")) !== FALSE) {

        
$num count($data);

        for (
$c=0$c $num$c++) {
        
            
$data[$c] = strtr($data[$c], "'""\'"); 
    
        };
            
        
$sql "INSERT INTO romts (`id`, `id_nnn`, `vlid_nnn`, `vil_nam`, `prov`, `dzet`, `ks`, `vs`) 
VALUES ('', '$szz', '$data[0]','$data[1]', '$data[2]', '$data[3]', '$data[4]', '')"
;  

        
mysql_query($sql) or die("Could not connect aaaaaaaaaaa : " mysql_error());  
        
};


файлик на 124000 строк добавляется 100 - 110 секунд
это долговато чето причем наблюдаю

по мускулу что само добавление происходит где 15 секунд а остальное скрипт где то висит

я так думаю когда через веб формочку файлик кидаешь он загружает его во временную директорию и потом построчно долго к нему обращается считывает его

какие существуют способы оптимизации этого дела

может как то можно забросит файлик в оперативку
не знаю сможет ли это php

надеюсь на помощь smile.gif






Спустя 50 минут, 22 секунды (18.08.2009 - 15:22) sergeiss написал(а):
Если ты хочешь "залить" файл в БД, и файл совершенно четко структурирован, то используй не то, что ты сделал, а конструкцию из MySQL "LOAD DATA INFILE..."
Синтаксис см. в мануале.

Эта штуковина как раз для такой цели и сделана. Чтобы очень быстро залить большие объемы данных.

Спустя 44 минуты (18.08.2009 - 16:06) mefistofel написал(а):
класс спасибо за подсказку я знал об этой всчи

но почему то был убежден что ее нельзя использовать в php ( где то вычитал )

вот так всяким источникам верить

еще раз спасибо 29 сек добавляет 130000

ЗАЧЁТ biggrin.gif

Спустя 7 минут, 28 секунд (18.08.2009 - 16:14) sergeiss написал(а):
Цитата (mefistofel @ 18.08.2009 - 17:06)
но почему то был убежден что ее нельзя использовать в php ( где то вычитал )

Если подходить совсем строго, то ты ее и не в ПХП используешь, а в MySQL smile.gif Через ПХП ты просто вызываешь запрос.

Спустя 6 минут, 38 секунд (18.08.2009 - 16:20) PandoraBox2007 написал(а):
да через Мускуль самый большой приоритет и скорость обработки демоном чем пропускать через интерпретатор пхп и только потом по немногу получать данные и отправлять в БД wink.gif


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.