![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 135 Pomógł: 0 Dołączył: 7.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
witam napisałem sobie skrypt i moje pytanie brzmi czy będzie mocno uciążliwy dla serwera jeśli będzie się wykonywał co godzinę ? Dla większej ilości użytkowników ?
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 340 Pomógł: 49 Dołączył: 3.07.2009 Skąd: Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Jakiekolwiek zapytanie puszczone w pętli jest potencjalnym źródłem problemów.
Nie musi być problemem już dzisiaj (w zależności od wielkości tabel, konfiguracji serwera itd), ale kiedyś nim będzie. To tylko kwestia czasu. Jest to zła praktyka i należy jej unikać.... Dodam, że ten skrypt można zastąpić dwoma zapytaniami SQL, które nie będą szkodliwe dla serwera niezależnie od liczby rekordów (IMG:style_emoticons/default/smile.gif) Ten post edytował bpskiba 28.01.2013, 19:49:00 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 381 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Mnie zastanawia po co klepanie obliczeń po stronie PHP skoro można wszystko od razu wyciągnąć z bazy? Druga sprawa, zerknij sobie na przykłady zapytań UPDATE http://stackoverflow.com/questions/1262786...on-select-query
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 279 Pomógł: 36 Dołączył: 1.03.2012 Ostrzeżenie: (0%) ![]() ![]() |
Jakiekolwiek zapytanie puszczone w pętli jest potencjalnym źródłem problemów. Nie musi być problemem już dzisiaj (w zależności od wielkości tabel, konfiguracji serwera itd), ale kiedyś nim będzie. To tylko kwestia czasu. Możesz rozwinąć? Jasne, powyższy przykład powinno się w całości zrealizować na SQLu, ale zastanawia mnie dlaczego Twoim zdaniem połączenie mysql_query i while musi stwarzać problemy - pomijając oczywiście skrajne przykłady? |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 283 Pomógł: 31 Dołączył: 10.01.2006 Skąd: Działoszyn Ostrzeżenie: (0%) ![]() ![]() |
Chodzi o ilość zapytań generowaną w skrypcie. Załóżmy, że zmienna $ilosc (która swoją drogą nie jest dalej używana (IMG:style_emoticons/default/smile.gif) - ale równa się ilości rekordów z pierwszego zapytania) przyjmie wartość 10000. W tej chwili wykonujesz pętle składającą się z 10.000 kroków i w każdym jej obrocie wykonujesz zapytanie (w tym przypadku nawet 2) do bazy. Niezbyt to optymalne.
Ten post edytował Michasko 28.01.2013, 20:54:24 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 279 Pomógł: 36 Dołączył: 1.03.2012 Ostrzeżenie: (0%) ![]() ![]() |
Tak, to logiczne. Po prostu zdanie zostało tak skonstruowane, że spodziewałem się złotej reguły, o której nie wiem. (IMG:style_emoticons/default/smile.gif)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 05:11 |