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
