Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Optymalne rozwiązanie
VGT
post 29.01.2005, 01:19:34
Post #1





Grupa: Zarejestrowani
Postów: 63
Pomógł: 9
Dołączył: 19.11.2004
Skąd: Iława

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


Problem mój nie polega na skonstruowaniu zapytania, lecz na wybraniu tego najbardziej optymalnego, gdyż w tej kwestii moja wiedz jest mizerna.
Więc do rzeczy:

Przyjmijmy, że mam listę filmów, pola: ID, tytul, gatunek.

Teraz na stronie chce wyświetlić ilość filmów z każdego gatunku w postaci wykresu słupkowego posortowane alfabetycznie. Aby móc to uzyskać, potrzebuję informacji, jaka wartosc ma największy ilościowo gatunek, aby móc dopasować długości słupków.

Rozważam trzy opcje:

1.
  1. SELECT count(*) AS ilosc, gatunek
  2. FROM films GROUP BY gatunek ORDER BY ilosc DESC LIMIT 1
  3.  
  4. SELECT count(*) AS ilosc, gatunek
  5. FROM films GROUP BY gatunek ORDER BY gatunek

Z pierwszego zapytania uzyskam maksymalną wartość, z drugiego już generuję html z odpowiednio proporcjonalnymi slupkami wykresu.

2.
  1. SELECT count(*) AS ilosc, gatunek
  2. FROM films GROUP BY gatunek ORDER BY ilosc DESC

Przy pobraniu pierwszego wiersza uzyskuje wartosc maksymalna, nastepnie caly wynik przepisuje do tabli w php i tam sortuje alfabetycznie i generuje wykres

3.
  1. SELECT count(*) AS ilosc, gatunek
  2. FROM films GROUP BY gatunek ORDER BY gatunek

Całość posortowaną alfabetycznie pobieram do zmiennych w php i z poziomu php wyszukuje wartosc maksymalna, nastepnie generuje wykres.

Piersze rozwiazanie dwa razy męczy sql'a, za to php praktycznie w locie generuje potem wykres.
Drugie i trzecie mogą dać całkiem sporo zmiennych dla php jezeli tabela bedzie szersza i/lub dłuższa, w zamian do sql'a łączy się tylko raz.

Jeszcze co do samej tabeli.. zazwyczaj bedzie to jedna, ale czasem wyniki pobieram z tabel laczonych (inner join)

Tak więc będę wdzięczny za jakiekolwiek sugestie. Co optymalniej jest męczyć php czy sql'a.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
popbart
post 29.01.2005, 02:35:51
Post #2





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 22.04.2004
Skąd: Żoliborz

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


Ja jestem przy wykorzystywaniu sql'a w 100%.
Na słowo "optymalnie" można różnie patrzeć:
1)szybkość generowania strony
2) przejrzystość aplikacji i jej logika.
Jeżeli pragniesz uzyskać parę milisekund generowania kosztem godzin w aktualizowaniu aplikacji bądź jej "obczajeniu" po długiej przerwie, to proszę bardzo, ja tak nie lubie tongue.gif .


--------------------
Visual Basic - kto by pomyślał :)
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: 24.07.2025 - 17:06