Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

Lame ass question? Or maybe not... VITEZA QUERY
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> MySQL
Subiectul anterior :: Subiectul următor  
Autor Mesaj
MasterPhoton



Data înscrierii: 06/Mar/2003
Mesaje: 437

Trimis: Dum Feb 13, 2005 12:53 am    Titlul subiectului: Lame ass question? Or maybe not... VITEZA QUERY  

Salut,
Stie careva care query este mai rapid intre SELECT-urile urmatoare:
- un query cu scoaterea datelor dintr-o singura tabela, cu JOIN pe alta tabela;
- un query cu FROM tabela1. tabela2, etc... si cu un WHERE in care sa compar un camp din tabela1 cu un camp din tabela2 ?

Ideea e ca vreau sa obtin acelasi rezultat, si am (cel putin) doua metode - sa scriu explicit JOIN tabela2 ON tabela2.colX = tabela1.colY, sau pur si simplu SELECT tabela1.colY FROM tabela1, tabela2 WHERE tabela2.colX = tabela1.colY ? (asta ca exemplu, pentru ca am constatat ca nu prea ma pricep sa explic :( )
Sus  
aurelian



Data înscrierii: 01/Iun/2003
Mesaje: 833
Locație: Bucuresti

Trimis: Dum Feb 13, 2005 9:34 am    Titlul subiectului:  

Incearca sa faci un benchmark intre cele doua metode, asa o sa te convingi singur.
Pentru optimizari foloseste:
an style="color: #000000"><?php EXPLAIN $query 
comanda pe care poti sa o dai in phpMyAdmin de exemplu.

Ptr. bechmark poti folosi si PEAR::Benchmark.
Sus  
arond



Data înscrierii: 11/Mar/2004
Mesaje: 580
Locație: 127.0.0.1

Trimis: Dum Feb 13, 2005 11:43 am    Titlul subiectului:  

Cele doua query-uri sunt perfect echivalente, nu ar trebui sa existe nici o deosebire (si poti verifica asta cu EXPLAIN query, cum ti-a explicat aurelian).

Cu alte cuvinte:

SELECT x.a, y.b FROM x,y WHERE x.id=y.id
va fi optimizat la fel ca si:
SELECT x.a, y.b FROM x INNER JOIN y ON y.id=x.id

Numa' bune.
Sus  
MasterPhoton



Data înscrierii: 06/Mar/2003
Mesaje: 437

Trimis: Dum Feb 13, 2005 1:14 pm    Titlul subiectului: Multumesc  

Salut,
Asa ma gandeam si eu... dar se pune intrebarea: daca tot sunt echivalente, pentru ce s-a mai inventat si instructiunea JOIN ?! (pentru compatibilitatea cu limbajul SQL ?)
Sus  
aurelian



Data înscrierii: 01/Iun/2003
Mesaje: 833
Locație: Bucuresti

Trimis: Dum Feb 13, 2005 2:25 pm    Titlul subiectului:  

Probabil pentru selecturi mai complexe.
In manual:
http://dev.mysql.com/doc/mysql/en/left-join-optimization.html
sau
http://dev.mysql.com/doc/mysql/en/join.html
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> MySQL
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community