Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> php/mysql - Zapytania czy php?
-lukasamd-
post
Post #1





Goście







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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
legorek
post
Post #2





Grupa: Zarejestrowani
Postów: 411
Pomógł: 35
Dołączył: 27.06.2004
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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ć.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 01:18