Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL] Losowanie rekordów bez obciażenia serwera
emanuel
post
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 29.06.2008

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


Tabela MYSQL ma milion rekordów, a może mieć nawet kilkanaście razy więcej.
Potrzebuję wylosować z niej X rekordów i wyświetlić informację zawarta w ich polach
Przykładowo mam takie zapytanie które wykonuje oczekiwane zadanie ale obciąża zasoby serwera.

CODE
<?
$zapytanie_sr = "SELECT pole FROM tabela ORDER BY RAND() LIMIT 20";
$wykonaj_sr = mysql_query($zapytanie_sr);
while($rek_sr = mysql_fetch_array($wykonaj_sr))
{
$tekst_sr=$rek_sr['pole'];

//wyświetlanie wyniku zapytania

echo "<font size=2 face=Arial>";
echo"
<B>$tekst_sr</B>
";
echo "</font><br>";
}

?>


Jak rozwiązać żeby obciążenie było minimalne i nie trzeba było czekać na wyświetlenie wyniku?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
dr_bonzo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


A co z przerwami w IDkach?

http://akinas.com/pages/en/blog/mysql_random_row/ - jak losowac JEDEN rekord w 1 zapytaniu, moze ci sie przyda
Go to the top of the page
+Quote Post
rafalp
post
Post #3





Grupa: Zarejestrowani
Postów: 224
Pomógł: 18
Dołączył: 4.02.2003
Skąd: Częstochowa

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


Cytat(dr_bonzo @ 29.06.2008, 18:11:22 ) *
A co z przerwami w IDkach?

tak jak napisałem wcześniej:
Cytat
Następnie jeśli pola ID a autoinkrementacją mogą być usuwane to dać jakiś warunek sprawdzający czy jest wyników tyle ile chcemy jeśli nie do powtórzyć losowanie lub wybrać dodatkowo jeszcze jakieś pole.
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: 4.10.2025 - 05:53