quote:Op dinsdag 29 januari 2008 12:51 schreef JortK het volgende:
Hoeveel trager dan?
Ik werk op echt grote omgevingen (MSSQL) maar daar merk ik het echt niet
Wat ik wel merk in performance is of je je joins left in de WHERE of in de FROM
Als je een tabel een of meerdere keren met zichzelf joint dan ontkom je natuurlijk niet aan aliassen... dat het performance kost wist ik ook niet eigenlijk.quote:Op dinsdag 29 januari 2008 11:53 schreef Chandler het volgende:
[..]
Dat wist ik ook nietweer wat geleerd, vind zo ie zo dat aliassen vies zijn, het is imho duidelijker om gewoon de gehele tabelnaam te gebruiken, weet je gelijk wat waar voor dient!
Dat klopt maar als je een tabel meerdere keren koppelt doe je imho iets foutquote:Op dinsdag 29 januari 2008 13:03 schreef Farenji het volgende:
[..]
Als je een tabel een of meerdere keren met zichzelf joint dan ontkom je natuurlijk niet aan aliassen... dat het performance kost wist ik ook niet eigenlijk.
Nee hoor hoeft absoluut nietquote:Op dinsdag 29 januari 2008 13:13 schreef Chandler het volgende:
[..]
Dat klopt maar als je een tabel meerdere keren koppelt doe je imho iets fout
Nee hoor.. in sommige situaties is dat noodzakelijk. Als je met parent_id's werkt bijvoorbeeld.quote:Op dinsdag 29 januari 2008 13:13 schreef Chandler het volgende:
[..]
Dat klopt maar als je een tabel meerdere keren koppelt doe je imho iets fout
Geef eens een voorbeeldquote:
Als jij dat wilt ;)quote:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | FROM TBL_MPM LEFT OUTER JOIN TBL_MPM AS TBL_MPM_009 ON TBL_MPM_009.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_009.MPM_TAB='A' AND TBL_MPM_009.MPM_FIELD='009' LEFT OUTER JOIN TBL_MPM AS TBL_MPM_011 ON TBL_MPM_011.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_011.MPM_TAB='A' AND TBL_MPM_011.MPM_FIELD='011' LEFT OUTER JOIN TBL_MPM AS TBL_MPM_016 ON TBL_MPM_016.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_016.MPM_TAB='A' AND TBL_MPM_016.MPM_FIELD='016' LEFT OUTER JOIN TBL_MPM AS TBL_MPM_019 ON TBL_MPM_019.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_019.MPM_TAB='A' AND TBL_MPM_019.MPM_FIELD='019' LEFT OUTER JOIN TBL_MPM AS TBL_MPM_022 ON TBL_MPM_022.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_022.MPM_TAB='A' AND TBL_MPM_022.MPM_FIELD='022' LEFT OUTER JOIN TBL_MPM AS TBL_MPM_023 ON TBL_MPM_023.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_023.MPM_TAB='A' AND TBL_MPM_023.MPM_FIELD='023' LEFT OUTER JOIN TBL_MPM AS TBL_MPM_027 ON TBL_MPM_027.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_027.MPM_TAB='A' AND TBL_MPM_027.MPM_FIELD='027' LEFT OUTER JOIN TBL_MPM AS TBL_MPM_028 ON TBL_MPM_028.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_028.MPM_TAB='A' AND TBL_MPM_028.MPM_FIELD='028' LEFT OUTER JOIN TBL_MPM AS TBL_MPM_032 ON TBL_MPM_032.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_032.MPM_TAB='A' AND TBL_MPM_032.MPM_FIELD='032' LEFT OUTER JOIN TBL_MPM AS TBL_MPM_033 ON TBL_MPM_033.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_033.MPM_TAB='A' AND TBL_MPM_033.MPM_FIELD='033' LEFT OUTER JOIN TBL_MPM AS TBL_MPM_038 ON TBL_MPM_038.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_038.MPM_TAB='A' AND TBL_MPM_038.MPM_FIELD='038' LEFT OUTER JOIN TBL_MPM AS TBL_MPM_039 ON TBL_MPM_039.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_039.MPM_TAB='A' AND TBL_MPM_039.MPM_FIELD='039' LEFT OUTER JOIN TBL_MPM AS TBL_MPM_040 ON TBL_MPM_040.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_040.MPM_TAB='A' AND TBL_MPM_040.MPM_FIELD='040' LEFT OUTER JOIN TBL_MPM AS TBL_MPM_041 ON TBL_MPM_041.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_041.MPM_TAB='A' AND TBL_MPM_041.MPM_FIELD='041' LEFT OUTER JOIN TBL_MPM AS TBL_MPM_037 ON TBL_MPM_037.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_037.MPM_TAB='A' AND TBL_MPM_037.MPM_FIELD='037' LEFT OUTER JOIN TBL_MPM AS TBL_MPM_042 ON TBL_MPM_042.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_042.MPM_TAB='A' AND TBL_MPM_042.MPM_FIELD='042' LEFT OUTER JOIN TBL_MPM AS TBL_MPM_044 ON TBL_MPM_044.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_044.MPM_TAB='A' AND TBL_MPM_044.MPM_FIELD='044' LEFT OUTER JOIN TBL_MPM AS TBL_MPM_045 ON TBL_MPM_045.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_045.MPM_TAB='A' AND TBL_MPM_045.MPM_FIELD='045' LEFT OUTER JOIN TBL_MPM AS TBL_MPM_046 ON TBL_MPM_046.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_046.MPM_TAB='A' AND TBL_MPM_046.MPM_FIELD='046' LEFT OUTER JOIN TBL_MPM AS TBL_MPM_047 ON TBL_MPM_047.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_047.MPM_TAB='A' AND TBL_MPM_047.MPM_FIELD='047' LEFT OUTER JOIN TBL_MPM AS TBL_MPM_048 ON TBL_MPM_048.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_048.MPM_TAB='A' AND TBL_MPM_048.MPM_FIELD='048' WHERE TBL_MPM.MPM_TAB='A' AND TBL_MPM.MPM_FIELD='GRD' |
dat kan met flush();quote:Op dinsdag 29 januari 2008 15:25 schreef Janteh het volgende:
Is het mogelijk om php output te laten sturen terwijl hij nog aan het parsen is? Ik heb een script wat heel lang moet draaien en ik zou graag willen dat ik de voortgang al op mn scherm krijg terwijl hij nog bezig is, of moet ik dan aan de cli gaan denken oid?
Daar sta ik ook van te kijken eigenlijk.... ik maak meestal standaard een alias, eens een benchmarkje maken om te kijken hoeveel het scheeltquote:Op dinsdag 29 januari 2008 13:03 schreef Farenji het volgende:
Als je een tabel een of meerdere keren met zichzelf joint dan ontkom je natuurlijk niet aan aliassen... dat het performance kost wist ik ook niet eigenlijk.
Laat je de uitkomsten weten?quote:Op dinsdag 29 januari 2008 15:56 schreef Xcalibur het volgende:
[..]
Daar sta ik ook van te kijken eigenlijk.... ik maak meestal standaard een alias, eens een benchmarkje maken om te kijken hoeveel het scheelt
Please post the resultsquote:Op dinsdag 29 januari 2008 15:56 schreef Xcalibur het volgende:
[..]
Daar sta ik ook van te kijken eigenlijk.... ik maak meestal standaard een alias, eens een benchmarkje maken om te kijken hoeveel het scheelt
Ja heel leuk, maar niet echt praktijk gericht volgens mij :)quote:Op dinsdag 29 januari 2008 19:41 schreef Xcalibur het volgende:
Ik maak eigenlijk nooit benchmarks, dus ik hoop dat ik een beetje iets zinnigs geproduceerd heb :P
- Tabel met bijna 3940 records
- Query 1: SELECT * FROM clients
- Query 2: SELECT * FROM clients AS clients
- Loop waarin de query 100x uitgevoerd wordt
- PHP microtime die de tijd registreert voor en na de loop
Gemiddelde resultaat over 10 metingen zonder alias: 10,82319 seconden
Gemiddelde resultaat over 10 metingen met alias: 11,13025 seconden
Verschil over 1000 queriesl: 2,83% trager met alias
Dit is natuurlijk een zeer beperkt aantal queries wat ik gedraaid heb, maar ik denk wel dat het redelijk betrouwbaar is... Met alias is iets trager, maar ik denk dat je het op een per-query basis echt niet gaat merken, tenzij je echt veel bezoekers op je site hebt :)
1 |
21 velden per rijquote:Op dinsdag 29 januari 2008 19:46 schreef JortK het volgende:
Hoeveel velden bevat die tabel?
Geen hond. 1 query duurt alleen maar 0,0001 seconde, en dan wordt het verschil zo lastig te maken....quote:Op dinsdag 29 januari 2008 19:46 schreef JortK het volgende:
En wie draait in één script 1000 queries
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |