Wat is sneller dan ORDER MY RAND()?
DavY -
29/07/2015 03:24:01Zoals de titel het al zegt.. ORDER BY RAND() kost ongeveer 20 seconden als je maar 1 kolumn selecteert, maar als je er 2 of 3 selecteert, kost het al gauw 90 seconden, wat dus niet echt efficient is. Iemand die weet hoe het efficienter kan?
Foutje in de titel.. MY moest natuurlijk BY zijn.
Foutje in de titel.. MY moest natuurlijk BY zijn.
Gewijzigd op 29/07/2015 03:25:51 door DavY -
PHP hulp
16/11/2024 11:02:50Ik kan mijzelf niet indenken dat deze functie traag is, maar je database. Ik vermoed dat het om een grote database gaat en een heleboel records?
DavY -
29/07/2015 09:16:51@Aar,
Ja, dat klopt. Het gaat ook om een grote database, waarvan er al veel data opgehaald wordt van 1 bepaald user, dus in een loop met een limit van 20/30 is ORDER BY rand al geen optie, omdat het de boel vertraagt. Ik heb het zelf ook getest in mysql commandline, maar ik lees ook veel informatie op google van andere personen die er ook problemen mee hebben.
Heeft deze forum soms problemen? Ik krijg regelmatig "bad gateway".
Ja, dat klopt. Het gaat ook om een grote database, waarvan er al veel data opgehaald wordt van 1 bepaald user, dus in een loop met een limit van 20/30 is ORDER BY rand al geen optie, omdat het de boel vertraagt. Ik heb het zelf ook getest in mysql commandline, maar ik lees ook veel informatie op google van andere personen die er ook problemen mee hebben.
Heeft deze forum soms problemen? Ik krijg regelmatig "bad gateway".
Gewijzigd op 29/07/2015 09:17:10 door DavY -
En hoe zit het met je INDICES op je kolommen?
Ja, ik heb er ook last van en heb het even gemeld.
DavY Blaat op 29/07/2015 09:16:51:
Ik krijg regelmatig "bad gateway".
Ja, ik heb er ook last van en heb het even gemeld.
Gewijzigd op 29/07/2015 09:20:47 door - Ariën -
Waarom wil je de resultaten voor één user in een willekeurige volgorde tonen?
Dat lijkt me de hamvraag: vaak is er namelijk een logischere volgorde om resultaten te tonen (bijvoorbeeld een datum) en die kolom, mét INDEX, kun je dan voor de ORDER BY gebruiken.
Dat lijkt me de hamvraag: vaak is er namelijk een logischere volgorde om resultaten te tonen (bijvoorbeeld een datum) en die kolom, mét INDEX, kun je dan voor de ORDER BY gebruiken.
In aanvulling op Ward:
Weet je zeker dat het alleen aan ORDER BY RAND() ligt?
20 sec is namelijk erg lang ook al gebruik je dat (ik kan me niet voorstellen dat je zonder de limit bv 20.000 records ophaalt). Ik denk dat je niet goed geindexed hebt.
Weet je zeker dat het alleen aan ORDER BY RAND() ligt?
20 sec is namelijk erg lang ook al gebruik je dat (ik kan me niet voorstellen dat je zonder de limit bv 20.000 records ophaalt). Ik denk dat je niet goed geindexed hebt.
DavY -
03/08/2015 02:08:34Sorry voor late reacties jongens. Bedankt voor jullie reacties. Na lang testen en uitzoeken, ben ik er inmiddels uitgekomen wat het beste is.