Heim >Datenbank >MySQL-Tutorial >Wie wählt man effizient zufällige Zeilen aus großen MySQL-Tabellen aus?

Wie wählt man effizient zufällige Zeilen aus großen MySQL-Tabellen aus?

DDD
DDDOriginal
2025-01-24 00:06:13853Durchsuche

How to Efficiently Select Random Rows from Large MySQL Tables?

Wählen Sie zufällige Zeilen aus großen MySQL-Tabellen effizient aus

Die Auswahl einer zufälligen Teilmenge von Zeilen ist eine häufige, aber anspruchsvolle Aufgabe bei der Arbeit mit großen Datensätzen. Für eine Tabelle mit 600.000 Zeilen ist es entscheidend, eine schnelle und effiziente Möglichkeit zu finden, 10 zufällige Zeilen auszuwählen.

Lösung

Um in dieser Situation die beste Leistung zu erzielen, beachten Sie Folgendes:

Diese Lösung nutzt die RAND()-Funktion und die CEIL()-Funktion, um zufällige IDs innerhalb eines akzeptablen Bereichs zu generieren. Die JOIN-Operation ruft dann die entsprechende Zeile basierend auf der zufällig generierten ID ab. Durch die Verwendung von ORDER BY r1.id ASC und LIMIT 1 stellt die Abfrage sicher, dass die richtige Zeile ausgewählt wird.

Es ist wichtig zu beachten, dass diese Methode eine gleichmäßige Verteilung der IDs voraussetzt und Lücken in der ID-Liste zulässt. Für fortgeschrittenere Szenarien wie ungleichmäßige Verteilung und fehlende IDs lesen Sie bitte den Artikel von Jan Kneschke für weitere Beispiele und Strategien.

Das obige ist der detaillierte Inhalt vonWie wählt man effizient zufällige Zeilen aus großen MySQL-Tabellen aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn