Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 6 809 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%)
|
Witajcie,
zna ktoś może inny sposób niż zopytmalizowany ORDER BY RAND() poprzez ID>=FLOOR(1+RAND()*MAX(ID)) ? Chodzi o to, że metoda ma mankament przy nieciągłości ID. Przykładowo: ID 126 0 134 0,666666667 136 0,833333333 137 0,916666667 138 1 Jak z tego wynika pierwsze ID wpada w połowę dolnego przedziału. Ostatecznie zastosowałem PHP, ale być może zna ktoś rozwiązanie na poziomie SQL. |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
@Pyton przy 50 rekordach nie ma co oczekiwac, ze roznice będą większe.
Zas przy 500 tysiacach, twoj skrypt wykonuje sie pol sekundy, moj 0,001s. Zas przy takiej liczbie rekordow (500 tys) rozwiązanie trueblue nie mialoby w ogole sensu. |
|
|
|
trueblue Losowy rekord 6.08.2014, 10:07:46
nospor Najlepszy bylby limit, ale do tego musisz uzyc jes... 6.08.2014, 10:20:14
Crozin Podstawowe pytanie: jakiej mniej-więcej wielkości ... 6.08.2014, 10:27:47
trueblue Crozin, nie jest duża, ale ruch w serwisie jest ba... 6.08.2014, 10:30:30
patryczakowy a co jest w $arr wszystkie rekordy z tabeli? 6.08.2014, 10:33:54
nospor @trueblue ale w swoim rozwiązaniu musisz pobrac ws... 6.08.2014, 10:35:20
Pyton_000 A może po prostu coś takiego:
[SQL] pobierz, plai... 6.08.2014, 10:45:49
trueblue Cytat(nospor @ 6.08.2014, 11:35:20 ) ... 6.08.2014, 10:45:58
nospor Pry 50 rekordach order by rand nie powinno mulic i... 6.08.2014, 10:55:30
Pyton_000 W tym że pobiera tylko jedną kolumnę ID, która jes... 6.08.2014, 11:00:54
Crozin @trueblue: Jeżeli masz raptem 50 rekordów spośród ... 6.08.2014, 11:02:19
mmmmmmm [SQL] pobierz, plaintext SELECT * FROM tabela ORDE... 6.08.2014, 11:06:40
nospor @Pyton faktycznie masz racje. Pobranie jednej kolu... 6.08.2014, 11:10:40
trueblue 1. Moja metoda
2. Nospor ze znikomym opóźnieniem, ... 6.08.2014, 11:28:24
nospor Nom, przy malej liczbie rekordow miejsca 1 i 2 mog... 6.08.2014, 11:32:52
Pyton_000 Jeżeli różnica rzędu 0.03 to taka wielka różnica
... 6.08.2014, 11:38:54
trueblue Dziękuję wszystkim za zaangażowanie i pomysły. 6.08.2014, 11:42:51
Pyton_000 Można jeszcze taką magią:
[SQL] pobierz, plaintext... 6.08.2014, 11:58:59 ![]() ![]() |
|
Aktualny czas: 1.01.2026 - 23:32 |