Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> optymalizacja kodu (PHP, MYSQL)
lysyluszowice
post
Post #1





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 18.11.2008

Ostrzeżenie: (10%)
X----


Witam,
mam problem z szybkością skryptu.
Otóż przy małej ilości danych skrypt działa świetnie szybko, przy dużych ilościach danych skrypt działa 10 razy wolniej, skrypt napisany jest na smartach.
Oto kawałek kodu:

if (is_numeric ($_SESSION["rodzaj"]))
{
//$miasto = mysql_query ('SELECT asortyment_name'.LANG.' FROM asortyment WHERE asortyment_id '.$_SESSION["rodzaj"].'');
//korekta dla nowych danych
$miasto = mysql_query ('SELECT asortyment_name'.LANG.' FROM asortyment WHERE asortyment_id IN ('.$_SESSION["rodzaj"].')');
$dane = mysql_fetch_array ($miasto);
$rodzaj = $dane["asortyment_name".LANG];
}


case "rodzaj":
case "asortyment":
if (isset ($_GET['b']) && is_numeric ($_GET['b'])) $_SESSION['asortyment_id'] = $_GET['b'];
$sql_mod = 'ogloszenie_rodzaj IN ('.$_SESSION['asortyment_id'].')';

$res = mysql_query ('SELECT asortyment_name'.LANG.' as asortyment_name FROM asortyment WHERE asortyment_id IN ('.$_SESSION['asortyment_id'].')');
$typ_szukania = SPIS_RODZAJ.' - ';
$obiekt_szukania = mysql_result ($res, 0, 0);
break;


Jak można przyspieszyć działanie tych zapytań?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
ultra_18
post
Post #2





Grupa: Zarejestrowani
Postów: 71
Pomógł: 4
Dołączył: 30.10.2008

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


nie czaje wcale tych twoich zapytan ;| , one wogle działaja?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ? skoro nie używasz znaków ucieczki i cały czas ten sam znak i zaczynasz zapytanie od ' a konczysz na " .


Cytat(lysyluszowice @ 19.11.2008, 10:08:29 ) *
//$miasto = mysql_query ('SELECT asortyment_name'.LANG.' FROM asortyment WHERE asortyment_id '.$_SESSION["rodzaj"].'');


żeby zwrócić wynik zapytania w select to być musiał dopisac jeszcze (np.) $wynik = mysql_fetch_row($miasto); jeżeli oczywiście wogle $miasto dziala w co śmiem wątpić. Jeżeli chodzi o optymalizacje to utworzenie indeksów dla wierszy tabeli zwieksza szybkość operacji na tych tabelach. Indeksy same sie tworzą dla kluczy podstawowych (PRIMARY KEY) a jeżeli nie masz w niektórych kolumnach to sam utwórz takowe dla najcześciej wybieranych rekordów. A co do czasu działaniu skryptu to można to zmierzyć , umieść na samym początku :

$time = microtime();

a na samym koncu

echo 'Czas wykonania skryptu to: '. (microtime()-$time) * 1000000 .' mikrosekund';

1000 mikrosekund to 1 mili sekunda czyli naprawde nie wiele.
Go to the top of the page
+Quote Post

Posty w temacie


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: 27.12.2025 - 18:46