![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 262 Pomógł: 3 Dołączył: 18.10.2009 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Witam.
2 dni temu walczyłem z jednym podzapytaniem i mi się udało. Niestety w momencie, kiedy dodaje drugie podzapytanie mysql bije wszelkie rekordy w długości zapytań mam taką tabelę:
Łączącą pacjenta z lekarzem, który się nim opiekuje. Oczywiście może występować sytuacja, kiedy jeden pacjent "przypisany" jest do więcej niż jednego lekarza. Na to znalazłem sposób:
Ale w momencie kiedy mam sytuację, ze jednej pacjent jest pod opieką więcej niż dwóch lekarzy wówczas zaczyna się problem. Idąc za taką logiką rozumowania zrobiłem następujące pytanie:
tutaj niestety już jest poważny problem, bo pytanie wykonuje się ponad 80 s. Oczywiście jest to niedopuszczalne. Zresztą nie było pożądanego efektu. Kombinowałem z IFem, gdzie 4 kolumna miała wyglądać następująco
ale to też niestety na nic. Kiedy dodaje group by id_pac w tym podzapytaniu, pytanie wykonywało się w nieskończoność zresztą bezskutecznie. Potrzebuję zrobić zapytanie gdzie będzie mi sprawdzał do 5 lekarzy u pacjentów. Nie chodzi mi oczywiście o rozwiązanie tylko o pomoc gdzie można jeszcze szukać lub gdzie popełniam błąd w rozumowaniu |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Dlatego tutaj zaleca sie rozsądek. Wiele osób upiera się, że wszystko ma być robione po stronie bazy jednym zapytaniem, bo to optymalniejsze (i czesto tak jest), ale sa sytuacje, gdy rozbicie na 2, 3 zapytania jest zwyczajnie lepsze, bo mocno upraszcza zapytanie i odciąża bazę. Zauważ jak bardzo uprościłem to zapytanie w porównaniu do Twojego z początkowego postu. Zamiast tworzyć multum kolumn, użyłem jednej i resztę zrzuciłem na skrypt PHP po stronie serwera. Tutaj właśnie liczy sie doświadczenie. trzeba wiedzieć, kiedy się wycofać z "oficjalnie uznanymi praktykami optymalizacyjnymi" (IMG:style_emoticons/default/smile.gif) Z czasem nauczysz się, kiedy powinno się łamać reguły by osiągnąć większe korzyści (mniejsze obciążenie, większa responsywnośc i szybkość aplikacji).
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 13.10.2025 - 18:24 |