![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 101 Pomógł: 7 Dołączył: 16.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
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?
![]() 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? ![]() ![]() ![]() Pozdrawiam |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 2 Dołączył: 28.04.2008 Ostrzeżenie: (0%) ![]() ![]() |
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.
Powód edycji: zdublowany post
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 202 Pomógł: 117 Dołączył: 13.04.2007 Skąd: 127.0.0.1 Ostrzeżenie: (0%) ![]() ![]() |
@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! -------------------- |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 7.10.2009 Ostrzeżenie: (0%) ![]() ![]() |
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. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 13:07 |