Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysql] wybieranie losowego wpisu
Force
post
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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Force
post
Post #2





Grupa: Zarejestrowani
Postów: 55
Pomógł: 6
Dołączył: 17.05.2007

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


Mam mniej więcej taką tabelę
  1. CREATE TABLE `obrazki` (
  2. `pid` int( 11 ) NOT NULL AUTO_INCREMENT ,
  3. `aid` int( 11 ) NOT NULL DEFAULT '0',
  4. `filepath` varchar( 255 ) NOT NULL DEFAULT '',
  5. `filename` varchar( 255 ) NOT NULL DEFAULT '',
  6. `filesize` int( 11 ) NOT NULL DEFAULT '0',
  7. `title` varchar( 255 ) NOT NULL DEFAULT '',
  8. PRIMARY KEY ( `pid` ) ,
  9. KEY `owner_id` ( `owner_id` ) ,
  10. ) ENGINE = MyISAM DEFAULT CHARSET = latin2

Ma ktoś jakiś pomysł jak to zrobić inaczej?
Cytat
Nie wiem jaki rodzaj danych masz w tej tabeli ale myślę, że lepszym rozwiązaniem byłoby gdzieś zkacheowanie wszystkich ID

Czyli mam wybrać wszystkie identyfikatory obrazków?
  1. SELECT pid FORM obrazki


I jeszcze jedno pytanie:
Czy funkcja array_rand zapewnia to, że wybrane elementy tablicy nie będą się powtarzać?
Go to the top of the page
+Quote Post

Posty w temacie


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: 27.12.2025 - 06:04