Citat:
Ursprungligen postat av tec
Så pass lite data att du lika gärna kan plocka ut alla rader och kasta om dem utanför Mysql. RAND() är otroligt slö.
Kod:
<?php
$data = mysql_fetch_object("SELECT * FROM dbo.quiz WHERE category = 445");
shuffle($data);
$results = array_slice($data, 0, 20);
|
Din lösning är per definition ännu slöare. RAND() räkna alla element innan några väljs ut vilket tar O(n) tid. Din lösning kräver också O(n) läsningar + tiden det tar att hämta och skicka informationen mellan server och klient + bearbetning av datan.