Ik draai sinds enige tijd mysql 4.1 en stuit nu op gedrag dat ik niet kan verklaren. Misschien is het een bug, misschien hoort het zo, misschien ligt het aan mij (die kans is het grootst
)
Ik heb een tabel, met daarin een aantal VARCHAR velden met indexen. Uit deze tabel wil ik een random record halen. Mijn query is dan:
Deze query (tabel heeft ~30000 records) duurt ongeveer 7 seconden, wat ik wat lang vind...
Het is ook alleen de RAND() functie die zo traag is.
Wat wel erg snel gaat, is:
id is een primary key, autoincrement int veld.
Toen dacht ik, ik los het op met een subquery:
Dit leidt tot een hangende query en mysql die het niet echt meer wil doen...
In de docs van mysql staat dat je de RAND() functie ook kan seeden met een integer... geprobeerd, geen effect
Heeft er iemand ervaring met het random selecteren van varchar velden in wat grotere tabellen? of iemand die snapt wat er mis gaat, of ik fout doe?
Ik heb een tabel, met daarin een aantal VARCHAR velden met indexen. Uit deze tabel wil ik een random record halen. Mijn query is dan:
SQL:
1
| SELECT veld1, veld2, veld3, veld4 FROM tabel ORDER BY RAND() LIMIT 1 |
Deze query (tabel heeft ~30000 records) duurt ongeveer 7 seconden, wat ik wat lang vind...
Het is ook alleen de RAND() functie die zo traag is.
Wat wel erg snel gaat, is:
SQL:
1
| SELECT id FROM tabel ORDER BY RAND() LIMIT 1 |
id is een primary key, autoincrement int veld.
Toen dacht ik, ik los het op met een subquery:
SQL:
1
| SELECT veld1, veld2, veld3, veld4 FROM tabel WHERE id=(SELECT id FROM tabel ORDER BY RAND() LIMIT 1) |
Dit leidt tot een hangende query en mysql die het niet echt meer wil doen...
In de docs van mysql staat dat je de RAND() functie ook kan seeden met een integer... geprobeerd, geen effect
Heeft er iemand ervaring met het random selecteren van varchar velden in wat grotere tabellen? of iemand die snapt wat er mis gaat, of ik fout doe?