Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 74 Pomógł: 1 Dołączył: 5.01.2008 Ostrzeżenie: (0%)
|
Hej,
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
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)
b.) Pobranie submenu z podartykułów dla aktywnego artykułu (GET['id'])
c.) Pobranie konkretnej tresci artykułu (GET['id'])
Opcja 3 Jakieś inne rozwiązania (podzapytania, złączenia, itp) |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
pobieranie wszystkich rekordow tylko po to by pobrac pare to zły pomysł. Przeciez liczba artykułów bedzie z czasem coraz wieksza.
mozesz pobrac te artykuły abc w jednym zapytaniu poprzez OR w warunku lub mozesz uzyc UNION. Mozesz te abc rozbic tez na 3 jak to pokazales. Pamietaj jednak, ze a) mozesz spokojnie cachowac. Nie potrzeby za kazdym razem latac do bazy po to. Na upartego b i c tez mozna cachowac, choc bardziej raczej b |
|
|
|
Ryder Optymalizacja zapytań 22.04.2010, 08:03:56
Pilsener A mi się wydaje, że Twoim problemem jest zła organ... 23.04.2010, 19:11:41 ![]() ![]() |
|
Aktualny czas: 28.12.2025 - 02:53 |