Mam pytanie co jest bardziej optymalne jedno zapytanie pobierające wszystkie rekordy czy kilka zapytań z klauzulą WHERE.
Przykładowa tabela (liczba rekordów <1000)
article {
- id
- title
- link
- content
- public
- parent
}
Np.
1 | artykuł1 | artykul1 | trest_artykułu1 | 1 | 0
2 | artykuł2 | artykul2 | trest_artykułu2 | 1 | 0
3 | artykuł1-1 | artykul1-1 | trest_artykułu1-1 | 1 | 1
...
Chce pobrać dane, żeby wygenerować menu, submenu, i wyświetlić aktywny artykuł.
Która opcja jest najbardziej korzystna dla niewielkiej strony.
Opcja 1:
Pobranie 1 zapytaniem wszystkich rekordów
SELECT * FROM article;
Zapisanie danych do tabeli i później operowanie na tej tabeli (foreach, if), żeby wydobyć interesujące dane
Opcja 2
a.) Pobranie menu (Tylko artykuły z parent = 0)
SELECT * FROM article WHERE parent = 0;
b.) Pobranie submenu z podartykułów dla aktywnego artykułu (GET['id'])
SELECT * FROM article WHERE parent = GET['id'];
c.) Pobranie konkretnej tresci artykułu (GET['id'])
SELECT * FROM article WHERE id = GET['id'];
Opcja 3
Jakieś inne rozwiązania (podzapytania, złączenia, itp)