Imam situacijo, ko imam v bazi več kot 200.000 zadetkov, ki ustrezajo kriterijem. Torej SELECT id FROM karnekej WHERE karnekej2>100 AND ... bi vrnilo 200.000 zadetkov.
Problem nastane ker se ti queriji izvajajo zelo pogosto. V headerju bi rad prikazoval na random 10 rezultatov na vsak prikaz strani.
LIMIT 10 sicer izjemno skrajša čas, toda ko se temu doda ORDER BY rand() vzame skoraj isto časa kot če bi zahteval vse. SELECT MAX(id)... je enako potraten pa niti ne pomaga kaj dosti. Če pa dam samo LIMIT 10, se mi bodo prikazovali vedno isti prvi rezultati, tisti zadnji pa nikoli. Ima kdo kako idejo kako rešit zadevo?
Drugi primer pa je isti, le da moram k temu pa moram potem dodati še paginacijo kar še dodatno zakomplicira zadevo. Tudi tu dobrodošla kak ideja, bom pa vesel že če zna kdo odgovorit na prvi primer.
Hvala!