 |
Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Comunitatea PHP Romania
|
| 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 |
|
| |
|