Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php & mysql] Zapytania SQL zastąpić przez for() ?
Joachim Peters
post
Post #1





Grupa: Zarejestrowani
Postów: 196
Pomógł: 2
Dołączył: 1.03.2006

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


Witam,

Ostatnio ciągle nurtuje mnie pytanie, co do wydajności mojego skryptu. Jestem początkujący, więc zwracam się do mądrzejszych (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Mam wykonywane 3 zapytania (select) do tej samej tabeli na jednej stronie, i zastanawiam się czy nie lepiej zastąpić to jednym zapytaniem sql, które wczytało by całą tą tabele (ok. 15 rekordów) i pózniej przy pomocy for() odpowiednio wyświetlić?
Jak będzie wydajniej?

Pozdrawiam

Ten post edytował d@ro 12.03.2007, 18:39:33
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
tansky
post
Post #2





Grupa: Zarejestrowani
Postów: 87
Pomógł: 0
Dołączył: 5.12.2005

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


Wydajniej byłoby zawrzeć w zapytaniu do mysql-a warunek, na podstawie którego chcesz filtrować dane.
Go to the top of the page
+Quote Post
Joachim Peters
post
Post #3





Grupa: Zarejestrowani
Postów: 196
Pomógł: 2
Dołączył: 1.03.2006

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


Może napisze jaśniej

  1. <?php
  2. $sql = "select * from tabela where kolumna_id > 10";
  3. $result = mysql_query($sql);
  4. dalsze instrukcje...
  5.  
  6. $sql = "select * from tabela where kolumna_type = 2";
  7. $result = mysql_query($sql);
  8. dalsze instrukcje...
  9.  
  10. $sql = "select * from tabela where kolumna_status = 1";
  11. $result = mysql_query($sql);
  12. dalsze instrukcje...
  13. ?>


czy

  1. <?php
  2. $sql = "select * from tabela";
  3. $result = mysql_query($sql);
  4. $row = mysql_fetch_array($result);
  5.  
  6. for($i = 0; $i < count($row); $i++)
  7. {
  8. if($row[$i]['kolumna_id'] > 10)
  9. {
  10. echo $row[$i]['kolumna_id'];
  11. }
  12. }
  13.  
  14. i dalej....
  15. ?>


co jest wydajniejsze?

Ten post edytował d@ro 12.03.2007, 19:17:40
Go to the top of the page
+Quote Post
JaRoPHP
post
Post #4





Grupa: Zarejestrowani
Postów: 675
Pomógł: 15
Dołączył: 7.11.2004
Skąd: Katowice

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


Cytat(d@ro @ 12.03.2007, 19:13:00 ) *
Może napisze jaśniej
Dla mnie jaśniejszym wyjaśnieniem był post pierwszy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .

Przeważnie najlepszym rozwiązaniem jest minimalizacja zapytań do bazy danych (które są czasochłonne).

[EDIT]
Za pomocą funkcji microtime" title="Zobacz w manualu PHP" target="_manual możesz sprawdzić, jak długo wykonuje się skrypt (zobacz pierwszy przykład).

Ten post edytował JaRoPHP 13.03.2007, 08:13:15
Go to the top of the page
+Quote Post
SongoQ
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Twoj przyklad nie ma wplywu na wydajnosc sa to tak male wielkosci ze trudno bedzie odczuc co jest lepiej napisane, 15 rekordow to jest nic.
Go to the top of the page
+Quote Post
Joachim Peters
post
Post #6





Grupa: Zarejestrowani
Postów: 196
Pomógł: 2
Dołączył: 1.03.2006

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


Czyli w takim przypadku to jest obojętne?

Kiedyś widziałem stronę, gdzie były podane szybkości funkcji z php itd., czy ktoś może zna adres?
Go to the top of the page
+Quote Post

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: 23.08.2025 - 19:00