jurchiks Posted November 10, 2014 Report Share Posted November 10, 2014 Nesmuki, tāpēc. Quote Link to comment Share on other sites More sharing options...
Wuu Posted November 10, 2014 Author Report Share Posted November 10, 2014 (edited) Beidziet cepies, tagad lapas ielāde notiek [time] => 0.01 Kur nu vēl, kad pliks HTML tiks servēts. Nu būs 0.2 kaut kādā vienai lapai kur jauns komentārs parādīsies, tas tik un tā notiks vienreiz. Pie jauna komentāra. Edited November 10, 2014 by Wuu Quote Link to comment Share on other sites More sharing options...
Kasspars Posted November 10, 2014 Report Share Posted November 10, 2014 Tev neko nemaksā replicēt komentu skaitu topics tabulā. Tas ir viens papildus db update saglabājot komentu. Tipa šitā UPDATE topics SET comments=comments+1 WHERE topicid=:id Rezultātā topiku query paliek vienkāršāks, jo nav jādžoino komentu tabula Datubāze atviegloti uzelpo Quote Link to comment Share on other sites More sharing options...
Wuu Posted November 11, 2014 Author Report Share Posted November 11, 2014 Es saprotu, bet datubāzi neveidoju pats, tāpēc, es tur neko neaiztieku. Quote Link to comment Share on other sites More sharing options...
daGrevis Posted November 11, 2014 Report Share Posted November 11, 2014 > Tipa šitā UPDATE topics SET comments=comments+1 WHERE topicid=:id Un tad ņemties, ka kkur nav pareizs skaits, jo kkur, ļoti sen, bija aizmirsta tranzakcija un programma izlidoja kkur pa vidu. Jebkurā gadījumā, to count nevarētu uztvert kā kko nopietnu un vajadzētu kkādu smuku mehānismu kas pārskrien pāri visiem rakstiem un sarēķina count no esošajiem komentāriem šim rakstam. Quote Link to comment Share on other sites More sharing options...
azpage Posted November 11, 2014 Report Share Posted November 11, 2014 Nu nez, nav bijušas problēmas ar papildus vaicājumiem, kas atsevišķu kolonnu pie ieraksta pievienošanas/dzēšanas izmaina. Šajā gadījumā tas nav svarīgi, taču pie liela vienlaicīgo lietotāju skaita un ierakstu daudzuma obligāti skaits ir jāglabā atsevišķā kolonnā. Turklāt vienmēr var ik pa laikam palaist kodu, kas atjauno skaitu. Performance ieguvums ir pamatīgs. Quote Link to comment Share on other sites More sharing options...
codez Posted November 11, 2014 Report Share Posted November 11, 2014 (edited) Ja bail no kļūdām, kuras var ieviesties ilgtermiņā veicot vērtību summēšanu, var katru reizi pilnīgi precīzi aprēķināt vērtību: UPDATE topics SET comments = (SELECT count(*) FROM comments WHERE topic_id=:id) WHERE topic_id=:id Un bieži šis UPDATE topics .... WHERE topic_id=:id tāpat ir jāveic, jo teiksim papildus pie komentāra gribās pielikt, kad pēdējo reizi topiks aiztikts, lai var kārtot pēc aktualitātes, tāpat arī kaut kādu topic-a reitingu pārrēķināt. Tā, ka tas beigās varētu izskatīties kaut kā tā: UPDATE topics SET comments = (SELECT count(*) FROM comments WHERE topic_id=:id), last_commented=:last_commented, rating=:new_rating WHERE topic_id=:id Edited November 11, 2014 by codez Quote Link to comment Share on other sites More sharing options...
Kasspars Posted November 11, 2014 Report Share Posted November 11, 2014 (edited) > Tipa šitā UPDATE topics SET comments=comments+1 WHERE topicid=:id Un tad ņemties, ka kkur nav pareizs skaits, jo kkur, ļoti sen, bija aizmirsta tranzakcija un programma izlidoja kkur pa vidu. Jebkurā gadījumā, to count nevarētu uztvert kā kko nopietnu un vajadzētu kkādu smuku mehānismu kas pārskrien pāri visiem rakstiem un sarēķina count no esošajiem komentāriem šim rakstam. Ja programma tiek līdz vietai, kur vajag replicēt komentāru skaitu, tad viss būs kārtībā ar šo variantu un fancy skaitīšanas variantu. Ja programma, netiks līdz count replicēšanai, tad arī tavs fancy skaitīšanas variants neizpildīsies. Nav vērts sarežģīt to ko var nesarežģīt Un vispār šitas bija koncepts. Reālais izpildījums būs atkarīgs no katra programmētāja izvirtušā pedantisma :) P.S Un vēl šādas vienkāršas lietas vajadzētu darīt jau sākumā, jo kad sistēma aizies un db sāks pildīties ar datiem, tad tur netikai šis query sāk bremzēt, bet vēl kaudze citu query Edited November 11, 2014 by Kasspars Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.