![]() |
![]() |
![]()
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: 56 Pomógł: 0 Dołączył: 18.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Tutaj masz bardzo przydatny link: http://net.tutsplus.com/tutorials/other/to...best-practices/ Patrz punkt 6 odnośnie swojego pytania. Hm... no jest to jakiś pomysł, ale jak dodam do pierwszego zapytanie Where, to całe zapytanie trwa 10 sekund troszkę dużo.. Wiadomo lepiej niż RAND, ale i ka długo... Może jeszcze jakieś pomysły> 10 sekund napisałem... Zapytanie z tego przykładu dostosowane do moich potrzeb trwa 100seknd |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.10.2025 - 09:01 |