Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: update danych z cvs - wytrzymalosc skryptu
Forum PHP.pl > Forum > PHP
hhg
dajmy na to ze chce w tym skrypcie zrobic update danych z plikow do bazy mysql
oto pół schematyczny skrypt
  1. <?php
  2. $row = 1;
  3. $uchwyt = fopen ("test.csv","r");
  4. while (($data = fgetcsv($uchwyt,",")) !== FALSE) {
  5.  $row++;
  6. TUTAJ BEDZIE ZAPYTANIE Z WYWOLANIEM GO (ignorujcie bledy): UPDATE tabela SET kolumna1 = $data[0], kolumna2 = $data[1] WHERE kolumna_klucz = $data[0]
  7.  }
  8. }
  9. fclose ($uchwyt);
  10. ?>


teraz pytanie: ile takich updatow skrypt wytrzyma bez zwiechy? dane nie sa specjalnie duze, w linii moze jest z 50 znaków gora
czy wykona wiecej czy mniej niz 10.000 odczytow i zapytan?

wiem ze to pytanie trudne bo sporo zalezy od serwera (skrypt jest lekki), ale prosze tez o orientacyjna odpowiedź

====================

a jezeli sie zawiesi do 10.000 rekordow to mam i na to pewien algorytm:
bede updateowal baze co 500 linijek pliku a skrypt sie odswiezy i wezmie kolejna paczke z 500 linijek. Pierwsza 500 pojdzie lekko ale prosze mi powiedziec czy cos takiego ma szanse bytu:

  1. <?php
  2. $row = 1;
  3. $uchwyt = fopen ("test.csv","r");
  4. while (($data = fgetcsv($uchwyt,",")) !== FALSE) {
  5.  $row++;
  6. TUTAJ BEDZIE ZAPYTANIE Z WYWOLANIEM GO (ignorujcie bledy): UPDATE tabela SET kolumna1 = $data[0], kolumna2 = $data[1] WHERE kolumna_klucz = $data[0]
  7.  
  8. if (($row % 500) == 0) header(wywolanie skryptu z $_GET rownym linii na ktorym skrypt sie zatrzymal)<font size="4">*</font>
  9.  
  10.  }
  11. }
  12. fclose ($uchwyt);
  13. ?>


* tylko jak wrocic do linii k*500 questionmark.gif
em1X
wszystko imho zalezy od ustawien memory_limit dla php
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.