Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] optymalizacja zapytań
Lejto
post
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
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 (IMG:style_emoticons/default/winksmiley.jpg)

Ten post edytował thek 26.11.2009, 22:55:12
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: 6.10.2025 - 04:20