[php] mocno obciążający serwr skrypt |
[php] mocno obciążający serwr skrypt |
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? |
|
|
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
|
|
|
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?
|
|
|
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
-------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
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 |
|
|
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.
|
|
|
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%) |
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. 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. 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). |
|
|
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 ?
|
|
|
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 |
|
|
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 |
|
|
-Andrzej.W.- |
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ą?
|
|
|
17.05.2013, 12:54:50
Post
#12
|
|
Grupa: Moderatorzy Postów: 36 455 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 |
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 04:29 |