Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 18.11.2008 Ostrzeżenie: (10%)
|
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ń? |
|
|
|
![]() |
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 " .
//$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. |
|
|
|
lysyluszowice optymalizacja kodu (PHP, MYSQL) 19.11.2008, 10:08:29
nospor Uzywaj bbcode!!!
Kod co pokazales nic... 19.11.2008, 10:12:23
kosmowariat http://xdebug.org/ 19.11.2008, 10:19:26
MWL http://phpbench.com/ 19.11.2008, 10:23:26
pinochet Zdarzało mi sie ze w mysql-u był domyslnie ustawio... 19.11.2008, 21:37:23 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 18:46 |