Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> wydajność mysql i apache
dado
post
Post #1





Grupa: Zarejestrowani
Postów: 194
Pomógł: 2
Dołączył: 12.04.2004
Skąd: Częstochowa

Ostrzeżenie: (10%)
X----


Mam problem dość spory dotyczący granic możliwości przerobowych mysql i php.
Mam skrypt który ściąga dane w postaci xml i wrzuca je do bazy.
W czasie wykonywania skryptu parsuje on 6 plików xml (simplexml) o wadze 300mb każdy razem okoł 3 milionów rekordów które następnie wrzucam do bazy mysql. Jak dotąd

- skutecznie wieszam kompa lub
- dostaje komunikat o koncu limitu czasu wykonywania skryptu który wydłużam do 2700 sec.
- lub o czyms takim "Fatal error: Out of memory (allocated 702808064) (tried to allocate 16 bytes) "

(działa póki co na localhost amd64 3,4 ghz, 1gb ram, winXp). czy ktoś z was miał podobne projekty do realizacji ? i czy jest na to jakiś sposób w ramach php+mysql (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

Ten post edytował dado 1.03.2007, 09:38:35
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
splatch
post
Post #2





Grupa: Zarejestrowani
Postów: 487
Pomógł: 7
Dołączył: 7.01.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Spróbuj składać zapytanie w postaci masowej. Zgaduję, że teraz jeden rekord = 1 insert. To potrafi zabić bazę danych. Składaj zapytanie o wielkości powiedzmy 10 tys rekordów i wysyłaj je od razu. Mówiąc 10 tys mam na myśli:
  1. INSERT INTO foo (bar, baz) VALUES
  2. (1, 2),
  3. (2, 2),
  4. (3, 2),
  5. (4, 2),
  6. // i tak dalej
Go to the top of the page
+Quote Post
Sh4dow
post
Post #3





Grupa: Zarejestrowani
Postów: 569
Pomógł: 0
Dołączył: 17.08.2003
Skąd: Dąbrowa Górnicza

Ostrzeżenie: (0%)
-----


Cytat(splatch @ 4.03.2007, 14:20:29 ) *
Spróbuj składać zapytanie w postaci masowej. Zgaduję, że teraz jeden rekord = 1 insert. To potrafi zabić bazę danych. Składaj zapytanie o wielkości powiedzmy 10 tys rekordów i wysyłaj je od razu. Mówiąc 10 tys mam na myśli:
  1. INSERT INTO foo (bar, baz) VALUES
  2. (1, 2),
  3. (2, 2),
  4. (3, 2),
  5. (4, 2),
  6. // i tak dalej

No tutaj to ja bym sie spieral czy to bedzie lepsze. Nie wiem czy mysql "łyknie" tak wielkie zapytanie. Nie jestem przekonany czy nie braknie mu ramu aby trzymac wszystkie dane jednoczesnie, po sparsowaniu pojedynczego rekordu jeden insert, niepodejzewam zeby mysql sie zatkał. A tak wogole błędem było
Cytat
Fatal error: Out of memory (allocated 702808064) (tried to allocate 16 bytes)

a nie problemy z mysqlem. Sam przerabiałem ten problem przy xml'ach wiec ja mowie z doswiadczenia. (IMG:http://forum.php.pl/style_emoticons/default/Rkingsmiley.png)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 04:30