Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 24.03.2008 Ostrzeżenie: (0%)
|
Witam. Mam taki problem, musze wyciagnac dosc duzo informacji z roznych stron a potem to zapsiac do mysql. Mam przykladowo 101 000 rekordow do zapisania w jaki sposob napisac skrypt ktory by w miare szybko to zapisal do mysql.
Do tej pory robilem to w ten sposob: CODE for($i=1; $i<=400; $i++) { $zmienna=@file_get_contents("http://localhost/parser/slownik.php?akcja=W&strona=".$i.""); preg_match_all('[<a href=\'one.php\?hid=(.+?)\'> (.+?)<\/a><\/td]is', $zmienna, $id_haslo); $ilosc=count($id_haslo[1]); $od=0; $do=($ilosc-1); for($x=$od; $x<=$do; $x++) { $haslo[$x]=file_get_contents("http://localhost/parser/one.php?hid=".$id_haslo[1][$x]); preg_match('[<br \/>(.+?)<br><br><br \/><br \/>]is', $haslo[$x], $tresc); $id[$x] = $id_haslo[1][$x]; $haslo[$x] = addslashes($id_haslo[2][$x]); $tekst[$x] = addslashes($tresc[1]); } $zapytanie="INSERT INTO slowa VALUES ('$id[0]', '$haslo[0]', '$tekst[0]'),"; for($x=1; $x<=($do-1); $x++) { $zapytanie .= "('$id[$x]', '$haslo[$x]', '$tekst[$x]'),"; } $zapytanie .= "('$id[$do]', '$haslo[$do]', '$tekst[$do]');"; mysql_query($zapytanie) or die("Nie udalo sie wykonac zapytania"); unset($tresc); unset($zapytanie); unset($haslo); unset($id); unset($tekst); echo "Strona ".$i." zgrana<br />"; } <A href="\'one.php\?hid=(.+?)\'"> w petli for miele strony (na kazdej stronie jest 10 rekordow do zapisania), wiec zapisuje do mysql po jeden stronie. CO robie zle?? bo to mi strasznie dlugo zapisuje. Kazda rada sie przyda |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 592 Pomógł: 62 Dołączył: 3.08.2006 Ostrzeżenie: (0%)
|
stwórz jedno zapytanie zamiast 400
spróbuj uruchomić to jakoś równolegle/wielowątkowo, tzn. zrób 8 plików z tym kodem i każdemu daj np. po 50 (400/50 = 8 plików) i uruchom jednoczesne (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) nie sprawdzałem czy działa, ale pisząc aplikacje tego typu w c/c++ wiele połączeń realizuje się jednocześnie... można spróbować |
|
|
|
KuKa Zapis danych z parsowanych stron 23.07.2008, 11:30:55
em1X pokaż strukturę tabeli i podaj przykładowe dane ja... 23.07.2008, 13:11:33
KuKa Mowisz masz :
struktura tabeli :
CODEid int(10)... 23.07.2008, 13:49:38
em1X a ile przewidujesz rekordów dla klucza ID? unsigne... 23.07.2008, 14:12:14
KuKa Rekordow bedzie gdzies 102000 wiec troche zmienie ... 23.07.2008, 14:15:10
KuKa ja w jednym zapytaniu wysylam 10 rekordow, ale jak... 23.07.2008, 14:33:53
em1X a sprawdzałeś czy zmiana struktury pomogła? mierzy... 23.07.2008, 15:03:25
KuKa wczesniej mi zapisywalo 10 tys rekordow na jakies ... 23.07.2008, 15:44:01 ![]() ![]() |
|
Aktualny czas: 28.12.2025 - 06:23 |