Plugin v/d Week: Find Random

Chiel Wester wo 05 maa 2008

In je applicatie moet je ten alle tijden voorkomen dat er via een ‘ORDER BY RAND’ statement records random uit de database worden gehaald. Wanneer je database wat groter wordt, dan zal de laadtijd van dit soort queries enorm toenemen. Dit komt omdat MySQL niet echt een efficiënte manier heeft om dit soort queries uit te voeren.

Wil je toch willekeurige records op je site tonen, dan biedt deze plugin een goed alternatief. De Find Random plugin vraagt eerst alle ids op van je database call, en pakt vervolgens hier random enkele ids uit. Vervolgens vraagt de plugin de daadwerkelijke data van de records met de geselecteerd ids op.

Het opvragen van 5 random items ziet er dan zo uit:

items = Item.random(5, :conditions => ["col1 = ? or col2 = ?", val1, val2])

of zonder conditions:

items = Item.random(5)

Gepost in hor |  1 reactie

joost baaij wo 05 maa 2008, 22:16

Weet niet wat meer overhead heeft, realistisch gezien: deze plugin of de (inderdaad niet waanzinnig efficiënte) mysql order by rand().

Een MySQL random select uit 37276 records duurt op een van mijn langzaamste db-servers 0.2 seconden. Acceptabel vind ik!

Plaats je reactie





(blijft verborgen)



Welkom op Holland On Rails

Het startpunt voor Ruby On Rails in Nederland. Vind de laatste technieken, meningen en nieuwtjes.

Recente Jobs

Die-Hard programmeur!

Houd jij van bowlen en The A-team? Kom dan bij ons werken! Wij ontwikkelen alleen maar in Rails, dus feest! Daarnaast hebben we Herman Miller stoelen!
(Zomaar een leuk project welke we gemaakt hebben: mijnopenid.nl)

@ Holder, Obdam

Stagiaires zijn welkom

voor opdrachten met leading edge open source technologiën. We bieden zorgvuldige en inhoudelijk goede begeleiding.

@ Agile Dovadi, Amsterdam

Bekijk alle jobs »»

Gereedschapskist

Onmisbare tools voor
iedere developer!
Ruby On Rails
Framework voor de web 2.0 developer. Eindelijk vooruitgang!
TextMate
Editor for true pro's
Typ, tab, top :-)
Nee, niet voor Win.
Made On A Mac
En nou is het over met die saaie grijze Windows bak van je!

Auteurs op deze site

Chris Obdam

'Less is more' evangelist, past dit ook dagelijks toe op zijn tandenborstel.

Chiel Wester

Snelheidswonder op Ruby wielen. Leuk om mee te pair-programmen ;-) Recommend Me

Stephan Kaag

Het eerste Rails coreteam- member uit Nederland? Rails evangelist van het eerste uur.

Paul Engel

Én Rails programmeren én interfaces designen? Je zou hem superman kunnen noemen..

Robbert Dol

Droomt Ruby code, wat anderen een nachtmerrie noemen is voor hem een prettige droom.

Freek Monteban

Het nieuwste telg uit het Holland on Rails nest! Hij doet niets anders meer!