Problemstellung:
Extrahieren einer einfachen Zufallsstichprobe (SRS) aus a Die effiziente Nutzung großer MySQL-Datenbanken kann mit dem „offensichtlichen“ Ansatz (SELECT * FROM table ORDER BY RAND() LIMIT n) eine Herausforderung darstellen. Die Ineffizienz dieser Methode ergibt sich aus der Verwendung von RAND() für jede Zeile und der anschließenden Sortierung, was zu einer ressourcenintensiven O(n lg n)-Komplexität führt.
Effiziente Lösung:
Um diese Hürde zu überwinden, sollten Sie einen effizienteren Ansatz in Betracht ziehen:
SELECT * FROM table WHERE RAND() <= 0.3
Diese Lösung übertrifft das „Offensichtliche“ Methode aufgrund ihrer Fähigkeit, für jede Zeile eine Zufallszahl zwischen 0 und 1 zu generieren und dann anhand eines Wahrscheinlichkeitsschwellenwerts (in diesem Fall 0,3) zu bewerten, ob diese Zeile angezeigt werden soll.
Erklärung:
Zusätzliche Überlegungen:
Das obige ist der detaillierte Inhalt vonWie kann ich eine einfache Zufallsstichprobe effizient aus einer großen MySQL-Datenbank extrahieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!