Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: php odczyt z bazy czy xml
Forum PHP.pl > Forum > PHP
niko
witam

Mam taki dylemat smile.gif pisałem kiedys serwis gdzie miałem bardzo dużo odwolan do bazy smile.gif no i przez to wywalali mnie z home z nazwy i teraz z niemieckiego serwera ponieważ generuje podobno straszne obciążenia dla serwera - hmmm pomijając fakt ze są to serwery dedykowane i tak do konca nie wiadomo czy to ja czy to wzrastająca liczba jednostek na fizycznej maszynie - mam pytanie :

co lepiej robić ?

a) w nagłówku dać zapytania do bazy i utworzyc sobie zmienne używane potem w serwisie ?
cool.gif utworzyć sobie plik xml z danymi i zmiennymi które nie zmieniają sie zbyt często ?
c) czy moze jakoś można odchudzić zapytania do bazy ?

czy wariant b jest bezpieczny ? - np zrobie sobie w panelu administracyjnym skrypt który mi zczyta baze i powywleka zmienne które sie nie zmieniają zapisze to wszystko w xml a w stronie bede używal tylko na starcie generowanie tablicy z xml-a a potem w treści wyciąganie zmiennych z tablicy - czy ten xml jest bezpieczny ? - można jakoś zmienić prawa zapisu - poprzez skrypt ? ze np mozna odczytac ale zmodyfikowac juz nie ?

mieliście może podobny problem ? proszę o informację...
phpion
Myślę, że konieczna będzie przebudowa skryptów:
1) Zmiana zapytań - domyślam się, że generujesz zapytania w pętli, stąd takie obciążenie
2) Odpowiednia struktura tabel (np. indexy)
3) Cache'owanie wyników zapytań
niko
a możesz mi wkleic po najprostrzym przykładzie dla każdego z Twoich punktów smile.gif albo linki gdzie moge o tym w j.polskim poczytac ? smile.gif zalezy mi na tym gdyz nie chciałbym powielac błedów przy nowej wersji tego serwisu smile.gif
phpion
A nie możesz użyć wyszukiwarki?
franki01
Jezeli to sa zapytania SELECT, to czasami przyda sie UNION.
niko
ja robię tego typu zapytania:

  1. <?php
  2. $query_con = "select * from ".$prefix."pl_config where name!=''"; 
  3. $result_con = mysql_query($query_con);
  4. $count_con = mysql_num_rows($result_con);
  5. while($row = mysql_fetch_array($result_con))
  6. { 
  7. $us_name = $row["name"];
  8. $$us_name = $row["wartosc"];
  9. }
  10. ?>


tu akurat ustawianie zmiennych z bazy;

jakie union ?
franki01
Cytat(niko @ 11.09.2007, 14:25:57 ) *
ja robię tego typu zapytania:

  1. <?php
  2. $query_con = "select * from ".$prefix."pl_config where name!=''"; 
  3. $result_con = mysql_query($query_con);
  4. $count_con = mysql_num_rows($result_con);
  5. while($row = mysql_fetch_array($result_con))
  6. { 
  7. $us_name = $row["name"];
  8. $$us_name = $row["wartosc"];
  9. }
  10. ?>


tu akurat ustawianie zmiennych z bazy;

jakie union ?



O UNION w googlach poszukaj. To jest laczenie wynikow... A ten przyklad jest bez sensu po widze tu tylko jedno zapytanie do mysql, wiec jaki problem :/

Chodzi o zapytania, ktore sa umieszczane w petli, np:

  1. <?php
  2. while(...) {
  3. $query = "SELECT * FROM `table`";
  4. $result = mysql_query($query);
  5.  
  6. // itd...
  7. }
  8. ?>
viraptor
Zrób sobie wrappery do tych funkcji - np. zamiast mysql_query odpalaj my_mysql_select_query():
  1. <?php
  2. function my_mysql_select_query($sql) {
  3. $jakiś_static_ilość_selectów++;
  4. zapis_do_logów("wykonuję: ".$sql);
  5. return mysql_query($sql);
  6. }
  7. ?>

odpal stronę, oglądnij statystyki - może na coś wpadniesz.
(odczyt z .xml zawsze będzie wolniejszy niż zapytania - szczególnie jeśli chodzi o dosyć stałe wartości)
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.