![]() |
![]() ![]() |
![]() |
-tymos- |
![]()
Post
#1
|
Goście ![]() |
Mam taki oto kod. Niestety wygenerowanie tego trochę zajmuje i obciąża serwer. Nie mam pomysłu jak to rozwiązać :/
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 150 Pomógł: 3 Dołączył: 15.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
w kazdym artykule o wydajnosci jest napisane zeby nie uzywac order by rand() poniewaz on musi obliczyc random dla kazdej krotki w bazie danych.
pomysly ktore przychodza mi do glowy: załóż kolumne random , zaindeksowana. wgraj do niej losowe dane i rob select z order by po tej kolumnie. i teraz możesz albo regenerować wartośc random po każdym jej odczytaniu albo raz na jakis czas zapuszczac zapytanie generujace wszystkie randomy od nowa to świetnie zadziała przy dużej ilości danych i małej ilości selectów Drugi pomysł załóż tabele zawierajaca dwie dane id i wygenerowany random np: 1 235 2 632 3 345 id musi byc tyle ile masz w twojej tablicy. i za kazdym losuj ide ktore wybierzesz na zasadzie SELECT id from table WHERE random>rand() limit 25; np zeby to dzialalo sprawnie polacz ten select jako JOIN z twoim zapytaniem. Ten post edytował kris2 22.09.2007, 18:23:40 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 00:14 |