Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL] LOSOWY REKORD, szukam sposobu bardziej wydajnego niż RAND()
lysy2005
post
Post #1





Grupa: Zarejestrowani
Postów: 56
Pomógł: 0
Dołączył: 18.01.2009

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


Witam,
mam bazę 4 GB i chce pobrać losowy rekord spełniające moje kryteria.

Teraz mam zastosowanie:
Select pole FROM tabela WHERE pole='1' ORDER BY RAND(); LIMIT 1

Ale wykorzystując RAND() zapytanie trwa bardzo długo,
przy dużych bazach nie spełnia roli.
W jaki sposób wy wyciągacie losowe rekordy w takich dużych bazach?
Z góry dziękuje za pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
aachi
post
Post #2





Grupa: Zarejestrowani
Postów: 54
Pomógł: 12
Dołączył: 4.08.2007

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


Panowie, ale pamiętacie, że autor nie potrzebuje losowego wiersza z tabeli, tylko losowego wiersza spełniającego jakiśtam warunek?
Go to the top of the page
+Quote Post
Speedy
post
Post #3





Grupa: Zarejestrowani
Postów: 651
Pomógł: 28
Dołączył: 4.12.2004

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


Cytat(aachi @ 19.06.2011, 21:27:39 ) *
Panowie, ale pamiętacie, że autor nie potrzebuje losowego wiersza z tabeli, tylko losowego wiersza spełniającego jakiśtam warunek?


Tylko nie wiadomo, co to za warunek, więc teraz mógłbym jedynie zgadywać (musiałbym mieć więcej szczegółów), ale rzeczywiście przy odpowiednim warunku moje ostatnie rozwiązanie może nie zadziałać zawsze.
Jeżeli pominiemy ten warunek, rozwiązanie działa.
Go to the top of the page
+Quote Post

Posty w temacie
- lysy2005   [PHP][MYSQL] LOSOWY REKORD   18.06.2011, 12:48:03
- - matino   Tutaj masz bardzo przydatny link: http://net.tutsp...   18.06.2011, 12:56:11
- - lysy2005   Cytat(matino @ 18.06.2011, 13:56:11 )...   18.06.2011, 13:11:06
- - Hpsi+   Aż mi sie nie chce wierzyć że: [SQL] pobierz, pla...   18.06.2011, 13:17:25
|- - webdice   Cytat(Hpsi+ @ 18.06.2011, 14:17...   18.06.2011, 14:32:39
- - lysy2005   Cytat(Hpsi+ @ 18.06.2011, 14:17...   18.06.2011, 13:43:52
- - Speedy   Możesz zrobić tak: [SQL] pobierz, plaintext SELEC...   18.06.2011, 14:54:24
- - #luq   Co Wy z tym WHERE id = xxx? Przecież można: [SQL]...   18.06.2011, 15:59:48
|- - Speedy   Cytat(#luq @ 18.06.2011, 16:59:48 ) C...   19.06.2011, 20:09:23
- - lysy2005   Cytat(#luq @ 18.06.2011, 16:59:48 ) @...   19.06.2011, 17:09:18
- - aachi   Może rozbij tablice na kilkanaście mniejszych. Nie...   19.06.2011, 17:35:00
- - aachi   Panowie, ale pamiętacie, że autor nie potrzebuje l...   19.06.2011, 20:27:39
|- - Speedy   Cytat(aachi @ 19.06.2011, 21:27:39 ) ...   19.06.2011, 20:40:20
- - Fifi209   Fajnie jakbyś pokazał strukturę tej tabeli lub naw...   19.06.2011, 20:36:07
- - vokiel   Wybaczcie link do bloga, ale kiedyś o tym pisałem,...   19.06.2011, 20:56:24
|- - aachi   Cytat(vokiel @ 19.06.2011, 20:56:24 )...   19.06.2011, 21:15:32
- - by_ikar   Dobrym rozwiązaniem byłoby zastosowanie cron'a...   20.06.2011, 09:16:55
|- - uupah5   coraz ciekawsze pomysły: rozbijanie tabeli na wiel...   20.06.2011, 09:49:40
|- - by_ikar   Cytat(uupah5 @ 20.06.2011, 10:49:40 )...   20.06.2011, 16:59:57
|- - uupah5   Cytat(by_ikar @ 20.06.2011, 17:59:57 ...   20.06.2011, 22:28:44
- - thek   Ja osobiście kombinowałbym także pod kątem: Zlicz ...   20.06.2011, 14:15:08


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: 14.10.2025 - 22:19