Wat is sneller dan ORDER MY RAND()?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

DavY -

DavY -

29/07/2015 03:24:01
Quote Anchor link
Zoals 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.
Gewijzigd op 29/07/2015 03:25:51 door DavY -
 
PHP hulp

PHP hulp

29/03/2024 13:07:11
 
- Ariën  -
Beheerder

- Ariën -

29/07/2015 09:02:32
Quote Anchor link
Ik 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 -

DavY -

29/07/2015 09:16:51
Quote Anchor link
@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".
Gewijzigd op 29/07/2015 09:17:10 door DavY -
 
- Ariën  -
Beheerder

- Ariën -

29/07/2015 09:18:37
Quote Anchor link
En hoe zit het met je INDICES op je kolommen?
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 -
 
Ward van der Put
Moderator

Ward van der Put

29/07/2015 11:52:44
Quote Anchor link
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.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

30/07/2015 18:35:20
Quote Anchor link
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.
 
DavY -

DavY -

03/08/2015 02:08:34
Quote Anchor link
Sorry voor late reacties jongens. Bedankt voor jullie reacties. Na lang testen en uitzoeken, ben ik er inmiddels uitgekomen wat het beste is.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.