Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: php/mysql - Zapytania czy php?
Forum PHP.pl > Forum > PHP
lukasamd
Witam,
jakiś czas temu zrobiłem sobie infusiona do php-fusion, statystyki w których możemy wyłączać wszystkie elementy. Ostatnio miałem na stronie licznik zapytań i zauważyłem że normalnie strona ma powiedzmy 40 zapytań a w moich statsach grubo ponad 100...

Skrypt najpierw pobiera z bazy informację czy dany element jest włączony a dopiero potem odpowiednie dane np:

  1. <?php
  2. $result = dbquery("SELECT stats_status FROM ".$db_prefix."multi_stats WHERE stats_id='1'");
  3. if (dbresult($result, 0) != 0 ) {
  4. $users = dbquery("SELECT count(user_id) FROM ".$db_prefix."users");
  5. if(dbresult($users, 0) != 0) echo ('<tr class=tbl1-down><td class=align=left>'.$locale['ms_201'].'</td><td align=right>'.dbresult($users, 0).'</td></tr>');
  6. ?>


No i teraz mam pytanie którego odpowiedzi nie jestem pewien - czy lepiej obciążyć bazę tyloma zapytaniami czy może pobrać wszystko w jednym i rozbić w samym skrypcie?
legorek
Nie znam php-fusion, tym bardziej Twojego skryptu statystyk. Pokaż trochę więcej kodu.

Odpowiem jednak na chłopski rozum:

Ilość wykonywanych zapytań nie jest wyznacznikiem czegokolwiek. Dużo ważniejsze jakiego typu są to zapytania. Zapytania:
  1. SELECT COUNT(costam) FROM skadstam

są ekstremalnie szybkie.
Zapytania:
  1. SELECT stats_status FROM ".$db_prefix."multi_stats WHERE stats_id='1'

mogą być szybkie. Zależy od struktury tabeli, ilości rekordów, typów danych i masy innych rzeczy. W twoim wypadku podejrzewam, że to będzie szybkie zapytanie.
Zapytania, w których łączysz duże tabele, poszukujesz danych, nie po kluczach będą wolne, stosujesz LIKE będą wolne.

To tytułem wstępu. Przejdźmy do meritum. Jeśli istnieje szansa, że możesz uniknąć zapytania które trwa 0.X sekundy stosując wcześniej zapytanie które trwa 0.00X zawsze trzeba do zrobić.
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-2025 Invision Power Services, Inc.