Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] optymalizacja zapytań
Lejto
post 26.11.2009, 22:41:35
Post #1





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 48
Dołączył: 23.05.2007

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


Mam kod który pobiera mi dane do galerii zawiera on jednak sporo zapytań.
Mogę go trochę zoptymalizować?
  1. $id = (int)$_GET['id'];
  2. $liczba = 2;
  3. $id = (int)$_GET['id'];
  4. $liczba = 2;
  5. $sql = $db->query('select * from galeria_foto where kategoria = "'.$kat.'" and id = "'.$foto.'"');
  6. $row = $sql->fetch_array();
  7. $numer = $row[numer];
  8.  
  9. $sql = $db->query('select * from galeria_foto where kategoria = "'.$kat.'" and id = "'.$foto.'"');
  10. $num = $sql->num_rows;
  11. $ile = ceil($num/$liczba);
  12.  
  13. if(!isset($_GET['id'])) $_GET['id'] = 0;
  14. $strona = (int)$_GET['id'];
  15.  
  16.  
  17. $q = $db->query('SELECT `id` FROM `galeria_foto` WHERE `id` > "'.$foto.'" ORDER BY `id` ASC');
  18. $wiersz = $q->fetch_array();
  19.  
  20. $quer = $db->query('SELECT `id` FROM `galeria_foto` WHERE `id` < "'.$foto.'" ORDER BY `id` DESC');
  21. $wiersz_2 = $quer->fetch_array();
  22.  
  23. $sql = $db->query('select * from galeria_foto where id = "'.$foto.'"');
  24. $num = $sql->num_rows;
  25. $ile = ceil($num/$liczba);
  26.  
  27. if(!isset($_GET['id'])) $_GET['id'] = 0;
  28. $strona = (int)$_GET['id'];
  29.  
  30.  
  31. $q = $db->query('SELECT `id` FROM `galeria_foto` WHERE `id` > "'.$foto.'" ORDER BY `id` ASC');
  32. $wiersz = $q->fetch_array();
  33.  
  34. $quer = $db->query('SELECT `id` FROM `galeria_foto` WHERE `id` < "'.$foto.'" ORDER BY `id` DESC');
  35. $wiersz_2 = $quer->fetch_array();
  36.  
  37. $zap = $db->query('select name,id from galeria_kategorie where id = "'.$kat.'"');
  38. $r = $zap->fetch_array();


Pozdrawiam


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post 26.11.2009, 22:53:00
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




No jasne że możesz. Zauważ, że nawet nie używasz czegoś takiego jak limit, choć wszędzie pobierasz tylko jeden wiersz. Nawet nie mówię, że pewne zapytania się dublują. Ja bym powiedział, że ów kod jest naprawdę bardzo nieoptymalny i zupełnie inaczej bym go napisał nie dlatego, że zapytania są źle napisane, ale już sam kod php jest w wielu miejscach bezsensowny. Całe linijki kodu produkują te same dane, choć są zbędne i wystarczy je wykonać raz. Popatrz ile razy sprawdza Ci zmienną $_GET[id] i liczy kompletnie zbędnie $strona. Co Ci daje w 10 linii liczenie ilości wierszy wyniku skoro w zapytaniu szukasz rekordu z konkretnym id, czyli będzie tam zawsze 0 albo 1. Takich nielogiczności masz więcej w raptem nie 40 linijkowym kodzie... Musisz go mocno pozmieniać by był optymalny.

EDIT: W zasadzie jakoś połowa tego kodu jest zbędna winksmiley.jpg

Ten post edytował thek 26.11.2009, 22:55:12


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 19:46