Andreas Görtz: MySQL- RAND() Perfomance

Beitrag lesen

Hi Gerd,

[...]da ich mittlerweile immer mehr Besuicher auf meiner Site habe.

was verstehst du unter "mehr Besucher"?

Mit RAND() gibt es bei vielen DB-Einträgen Performanceprobleme.

was verstehst du unter "vielen DB-Einträgen"?

Meint ihr das wird was bringen auf Dauer? Das Problem ist halt, dass IDs in der Datenbank fehlen,

ich halte da nicht sehr viel von, weil einfach sehr viele unnötige (in diesem Zusammenhang denke ich, dass jede Anzahl an, die über 1 hinaus geht, überflüssig ist) Anfragen an die DB gestellt werden können. Wenn sogar noch bedingung1 und bedingung2 zu einer zufällig ausgewählten ID passen müssen...

Habt ihr andere Vorschläge? Indizes eventuell auch?

du könntest die Ergebnisse per Cronjob in einem ereignislosen Zeitraum (z.B. irgendwann nachts um 3 Uhr oder so) vorbereiten, in einer eigenen Tabelle, im Dateisystem, whatever. Dann müsstest du die aufwendigen Queries (also mit ORDER BY RAND()) nur noch ausführen, wenn die vorbereiteten Ergebnisse mal ausgehen...

Gruß,
Andreas.