Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> OPTYMALNE wybieranie losowych rekordów z bazy danych
Michael2318
post
Post #1





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

Ostrzeżenie: (0%)
-----


Zastanawiam się jaki jest najoptymalniejszy sposób na wybranie 5 losowych rekordów z bazy danych? Do tej pory raczej bezmyślnie korzystałem z rand() w zapytaniu, ale ta opcja ma bardzo negatywne opinie w sieci, dlatego też zastanawiam się w jaki sposób to zrobić inaczej, a przy tym najbardziej optymalnie jak tylko się da?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Damonsson
post
Post #2





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Kiedyś poruszałem ten temat w innym wątku, twierdząc, że aktualnie ORDER BY RAND() jest równie szybkie.

ctom: Jaką wersję MySQL wykorzystałeś do testów?

U mnie zapytanie:

  1. $sql = SELECT * FROM tab WHERE param1 =1 ORDER BY RAND() LIMIT 5


Wszystkich rekordów: 350k
Czas średni na 20 powtórzeń: 0,140 sec.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 17.10.2025 - 18:46