![]() |
![]() |
![]()
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 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 483 Pomógł: 50 Dołączył: 15.03.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Aż mi sie nie chce wierzyć że:
wynik counta jak dasz w mt_rand() i pobierasz potem 1 rekord, daje ci 100 sekund geenrowania pracowałem na podobnej bazie wielkosciowo nie jeden raz i nigdy nie osiagnelem takiej "wartosci" zapytan Ten post edytował Hpsi+ 18.06.2011, 13:18:03 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.10.2025 - 20:21 |