Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][SQL]Szybszy PHP czy MySQL?
Forum PHP.pl > Forum > Przedszkole
siemieng
Pytam z czystej ciekawości co waszym zdaniem jest "lepsze", czy bardziej wydajniejsze - obróbka całości pobranych danych w PHP, czy pobieranie danych seriami z bazy?questionmark.gif?

Załóżmy, że wykonujemy stronę szkoły, na której ma być plan zajęć dla wszystkich klas, podzielony na 5 dni szkolnych.

I teraz:
1. Czy lepiej pisać funkcję pobierającą informacje z bazy danych o zajęciach we wszystkich dniach na raz, następnie przy pomocy PHP z załóżmy tablicy będącej wynikiem działania zapytania do bazy, dokonać grupowania danych według poszczególnych dni.
2. Czy może grupowanie danych wykonać poprzez bardziej złożone zapytanie do bazy, pobrać dane już pogrupowane wg. dni, w wyniku czego obróbka danych wynikowych przy pomocy PHP będzie znikoma, bo dane będą praktycznie gotowe do wyświetlenia, lecz zamiast jednego połączenia z bazą wykonamy serię takich połączeń.

Oczywiście przytoczony przykład jest banalnym przykładem, ale ostatnio poświęcam dużo czasu nad dopracowanie optymalizacji kodu i zapytań w tworzonych stronach, i nasunęło mi się takie właśnie pytanie:)

Jak sądzicie, jakie macie doświadczenia?questionmark.gifquestionmark.gifquestionmark.gif
Pozdrawiam
Norr
Moim zdaniem, najlepiej jest pobrać dane z bazy danych za pomocą szczegółowego zapytania, żeby był gotowiec, a wynik zapisać albo do xml'a (zaletą jest możliwosć wczytania do każdego pliku, który obsługuje xml, np. Excel, ale wówczas trzeba odpowiednio obrobić plik)albo do pliku tekstowego, który później będzie pobierany przy każdym ładowaniu strony, np. includem. Jest to chyba najszybsze rozwiązanie.
ayeo
@seimieng, albo się trzyma dane w bazie albo xmlu. Twoje rozwiązanie jest co najmniej bezsensu. Najlepiej pobrać dane jednym zapytaniem. Przy pobieraniu planu lekcji nie masz tych rekordów zbyt wiele. Zresztą nawet jeśli pobierzesz je w 15 zapytaniach to i tak na koniec masz wszystkie w pamięci.

Pozdrawiam!
mad/
Jestem zdecydowanie za jednym zapytaniem i obróbką w PHP. Ponieważ to o czym piszesz wygląda na to, że ilość zapytań będzie mogła być zależna od ilości danych, jeśli o to chodzi to to fatalne rozwiązanie dla optymalizacji. Jeśli źle zrozumiałem i ilość danych nie będzie wpływać na ilość zapytań, to proponuję tak:

w pierwszym zapytaniu pobrać godziny, w drugim dni, wygenerować pustą tablicę dwuwymiarową, z ilością pól odpowiednią do ilości dni i godzin (umożliwia wprowadzenie zajęc w sobotę bez modyfikacji kodu PHP), za pomocą sql łączyć ze sobą dni tygodnia, godziny i nazwy zajęć i pobierać w jednym zapytaniu, całość wrzucać do odpowiednich pól teblicy za pomocą PHP.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.