Ca sa iau pic si partea programatorului...
ORDER BY RANDOM() e perfect legal si rapid:)
Problema e ca nu face cache, dar nici asta nu cred ca e o problema asa
mare, din moment ce smecheria asta se intampla fara sa se atinga de
disk(tabelul e in memorie, doar il sorteaza altfel).
Sistem quad core e cam degeaba, din cate stiu se tot incearca sa se
faca mysql-ul sa ruleze multiprocesor, nu stiu daca au ajuns prea
departe, dar pana una-alta mysql-ul e un singur thread, in mare parte
disk-bound. Si sincer, din moment ce "clientul" vrea sa aiba pe prima
pagina articole alese aleator din baza de date... is there another
way? clientul e cel care plateste quad-core-ul, clientul e cel care
plateste si programatorul, clientul e cel care in final are de
pierdut...

Mai zicea cineva de "SELECT SQL_CALC_FOUND_ROWS, etc FROM". Asta e
varianta optimizata. Intern nu stiu ce face, si in manual nu scrie
nimic, nu stiu de unde tragi concluzia asta. Daca e asa, mi se pare o
problema majura a serverului, nu a programatorului, dar din ce teste
am facut eu, un select cu SQL_CALC_FOUND_ROWS e mult mai rapid decat
SELECT cu LIMIT si apoi sa faci inca unul fara LIMIT... Oricum, alta
metoda sa afli numarul de randuri nu prea ai.


On Fri, Nov 5, 2010 at 11:29 AM, Petru Ratiu <[email protected]> wrote:
> 2010/11/5 Claudiu Nicolaie CISMARU <[email protected]>:
>> On Friday 05 November 2010 09:42:38 Tarhon-Onu Victor wrote:
>>>
>>>       In conditiile in care un buhai sinistru cu creierii indienizati
>>> maxim si apoi combinati cu tarite scrie in aplicatii "select * from
>>> ckt" si apoi din script se apuca si triaza inregistrarile, nu stiu
>>> daca ai cui sa-i explici de performante, indecsi, scalabilitate,
>>> resurse.
>>
>> Sau cum spuneai intr-un mail mai de mult, sortau un sir de numere
>> bagandu-l in baza de date si extragandu-l inapoi cu order by... :(
>
> My all time favorite este SELECT * FROM `table` ORDER BY RANDOM();
> urmat de "De ce mama naibii acum cateva luni mergea pe o masina entry
> level si acum nu mai face fata nici un quad cpu?" (Asta acum vreo 4-5
> ani,mind you).
>
> --
> Petre.
> _______________________________________________
> RLUG mailing list
> [email protected]
> http://lists.lug.ro/mailman/listinfo/rlug
>



-- 
--------------------------------------------
----THE END of this transmission----
_______________________________________________
RLUG mailing list
[email protected]
http://lists.lug.ro/mailman/listinfo/rlug

Raspunde prin e-mail lui