Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 55 Pomógł: 6 Dołączył: 17.05.2007 Ostrzeżenie: (0%)
|
Witam
Na początku zaznaczam że szukałem na forum i nic nie znalazłem więc jeżeli było to proszę o linka Pobieram z bazy danych losowe wpisy takim pytaniem: "SELECT * FROM obrazki ORDER BY RAND() LIMIT 10" Niestety przy 400 wpisach pytanie wykonuje się ok 0.2s Czy jest jakiś szybszy sposób na to? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 1 116 Pomógł: 119 Dołączył: 10.05.2005 Skąd: Poznań Ostrzeżenie: (0%)
|
Cytat RAND() is not meant to be a perfect random generator, but instead is a fast way to generate ad hoc random numbers which is portable between platforms for the same MySQL version. (źródło) więc używanie rand() samo w sobie nie jest efektywne. Nie wiem jaki rodzaj danych masz w tej tabeli ale myślę, że lepszym rozwiązaniem byłoby gdzieś zkacheowanie wszystkich ID do tablicy w pliku PHP i potem z niej na poziomie PHP losować id i dać zapytanie:
Funkcje losującą identyfikatory ze skeszowanej tablicy PHP można łatwo napisać za pomocą funkcji int rand ( [int $min, int $max] ) |
|
|
|
Force [mysql] wybieranie losowego wpisu 16.01.2008, 13:59:04
Force Mam mniej więcej taką tabelę
[SQL] pobierz, plaint... 16.01.2008, 21:26:37
nevt ja bym to spróbował zrobić na 2 zapytani... 16.01.2008, 21:37:33
Force nevt: Tylko, że ja wyciągam z bazy ponad 10 wpisów... 17.01.2008, 13:43:37
Cezar708 Cytat(Force @ 16.01.2008, 21:26:37 ) ... 17.01.2008, 14:20:15 ![]() ![]() |
|
Aktualny czas: 24.12.2025 - 09:06 |