Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] mocno obciążający serwr skrypt
propage
post 11.05.2013, 11:21:17
Post #1





Grupa: Zarejestrowani
Postów: 330
Pomógł: 0
Dołączył: 25.01.2008

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


jest skrypt aktualizacji bazy danych, który wykonuje ok 0.5 mln zapytań do bazy danych i działa tak przez 5 minut, uruchmiany jest raz na 2 godziny.
W czasie, gdy pracuje, cały serwer zwalnia.
Zastanawiam się, czy da się go wykonać np. w 15 minut, tak aby w tym czasie wykorzystywał mniej zasobów, aby serwer tego nie odczuł tak bardzo?
Go to the top of the page
+Quote Post
Wazniak96
post 11.05.2013, 12:56:57
Post #2





Grupa: Zarejestrowani
Postów: 550
Pomógł: 75
Dołączył: 5.06.2012
Skąd: Lębork

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


Skrypt połączony jest z MySQL przez PDO? Jeżeli nie to przenieś sie na PDO i użyj prepare z bindValue smile.gif
Go to the top of the page
+Quote Post
Aqu
post 11.05.2013, 13:23:30
Post #3





Grupa: Zarejestrowani
Postów: 279
Pomógł: 58
Dołączył: 14.07.2012

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


Może co kilkaset zapytań zrób sleep?
Go to the top of the page
+Quote Post
Fifi209
post 11.05.2013, 13:58:10
Post #4





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Pytanie co robi ten skrypt w ogóle smile.gif


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
propage
post 11.05.2013, 14:43:22
Post #5





Grupa: Zarejestrowani
Postów: 330
Pomógł: 0
Dołączył: 25.01.2008

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


1. co da PDO ? To szybciej działa niż zwykłe zapytania przez mysql_query ? Raczej nie wchodzi to w gre, za dużo przepisywania.

2. Skrypt aktualizjuje baze produktów w sklepie internetowym ok 20 tys produktów łacznie z różnymi cechami itd...

3. te "sleep" nie wiem czy to dobry pomysł, ktoś testował?

Ten post edytował propage 11.05.2013, 14:46:56
Go to the top of the page
+Quote Post
Wazniak96
post 11.05.2013, 14:51:28
Post #6





Grupa: Zarejestrowani
Postów: 550
Pomógł: 75
Dołączył: 5.06.2012
Skąd: Lębork

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


Pewnie, że szybsze... wysyłasz jedno zapytanie zamiast tych pół miliona, ale nie wiem czy tyle PDO by wgl przyjęło.
Go to the top of the page
+Quote Post
!*!
post 11.05.2013, 14:52:25
Post #7





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Cytat(propage @ 11.05.2013, 15:43:22 ) *
1. co da PDO ? To szybciej działa niż zwykłe zapytania przez mysql_query ? Raczej nie wchodzi to w gre, za dużo przepisywania.

Twierdzą że szybsze.

Cytat(propage @ 11.05.2013, 15:43:22 ) *
2. Skrypt aktualizjuje baze produktów w sklepie internetowym ok 20 tys produktów łacznie z różnymi cechami itd...

Nie mając kodu, trudno powiedzieć co można z tym zrobić. Wszytko zależy od tego jak całość jest napisany i czy da się to zoptymalizować z poziomu php.

Cytat(propage @ 11.05.2013, 15:43:22 ) *
3. te "sleep" nie wiem czy to dobry pomysł, ktoś testował?

Też go nie rozumiem.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
propage
post 11.05.2013, 15:55:35
Post #8





Grupa: Zarejestrowani
Postów: 330
Pomógł: 0
Dołączył: 25.01.2008

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


nie chce zakładać nowego tematu, mam pytanie, czy apostrofy w zapytaniach spowalniają działenie zapytania np WHERE id = '9' w stosunku WHERE id = 9 ?
Go to the top of the page
+Quote Post
Fifi209
post 15.05.2013, 10:07:46
Post #9





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Naturalnie, że tak. Bo trzeba rzutować stringa na liczbę.


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
Kocurro
post 16.05.2013, 09:57:39
Post #10





Grupa: Zarejestrowani
Postów: 461
Pomógł: 32
Dołączył: 17.09.2003
Skąd: Łódź

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


Po kolei:
1) skorzystaj z mysqltunner
2) włącz slow_query_log
3) przejrzyj slow_query_log
4) zaprzyjaźniej się z EXPLAIN
5) popraw strukturę bazy danych
6) popraw zapytanie aktualizujące
7) wyłącz slow_query_log
8) odczekaj minimum 24h
9) użyj mysqltunner

Jeśli to nie da rady - przemyśl założenia algorytmu aktualizacji.

Jeśli nie dasz rady - zleć specjaliście.

Pozdrawiam,
Łukasz
Go to the top of the page
+Quote Post
-Andrzej.W.-
post 17.05.2013, 12:47:40
Post #11





Goście







Hmm może to głupie pytanie. Ale gdzie jest przechowywana taka ilość danych zanim zostanie wprowadzona do bazy i skąd one pochodzą? smile.gif
Go to the top of the page
+Quote Post
nospor
post 17.05.2013, 12:54:50
Post #12





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
Dołączył: 27.12.2004




500tys zapytań do bazy naraz.... nic dziwnego że ci zamula serwer w tym czasie. Tu żadne apostrofy ci nie pomogą. Problemem jest liczba zapytań.

Sam przetwarzam duże dane i by serwer pracował w tym czasie używam właśnie sleep(1) co kilkaset rekordów. Ino u mnie nie musi się to wykynać w 15 minut więc nie ma problemu że potrwa to dłużej - grunt że serwer nie muli.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 18.04.2024 - 19:56