![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 305 Pomógł: 25 Dołączył: 27.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam w bazie takie oto tabele z autorami i wierszami : love_authors Kod ID, NAME_FIRST, NAME_LAST, NAME_PREFIX, NAME_URL, MAIL, DESCRIPTION, IMAGE, STATUS love_lyrics Kod ID, AUTHOR_ID, TITLE Chcę na stronie teraz wyświetlić autorów wraz z liczbą wierszy (liryka zliczana z tabeli love_lyrics). Relacja zachodzi pomiędzy ID i AUTHOR_ID. Dotychczas robiłem to w następujący sposób:
Oraz w pętli while dla każdego rekordu pobieram osobno liczbę wierszy:
Dla każdej podstrony wykonywanych jest więc kilka połączeń (6). Czy mógłbym jakoś połączyć te tabele w celu optymalizacji zapytania? Z góry dziękuję za wszelkie podpowiedzi. Ten post edytował kilas88 9.03.2009, 18:11:44 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Można i byłoby to raczej najszybsze rozwiazanie.
Lecz można to tez policzyc w jednym zapytaniu
Ten post edytował wookieb 9.03.2009, 18:21:05 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 19 Pomógł: 1 Dołączył: 27.08.2007 Skąd: Londyn Ostrzeżenie: (0%) ![]() ![]() |
Można i byłoby to raczej najszybsze rozwiazanie. Lecz można to tez policzyc w jednym zapytaniu
wookieb mam male pytanko (moze sie orientujesz), a nie lepiej wyrzucic 'STATUS = 1' z podzapytania jesli podany warunek jest juz sprecyzowany w glownym WHERE? tj.
albo nawet
jak myslisz, ktore bedzie wydajniesze w tym wypadku? sprawdz explaina dla obydwoch, dla drugiego zapytania pokazuje zawsze 'select_type' -> 'SIMPLE' ale jednoczesnie 'Using where; Using temporary; Using filesort' co nie jest mile widzane, prawda? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 15:38 |