vostro Posted September 27, 2011 Report Share Posted September 27, 2011 Sveiki, kā labāk ir? Ar count? vai savādāk kaut kā? Quote Link to comment Share on other sites More sharing options...
daGrevis Posted September 27, 2011 Report Share Posted September 27, 2011 Es taisu ar COUNT(`id`), kur id ir primārā atslēga. Quote Link to comment Share on other sites More sharing options...
vostro Posted September 27, 2011 Author Report Share Posted September 27, 2011 Paldies!! Quote Link to comment Share on other sites More sharing options...
daGrevis Posted September 27, 2011 Report Share Posted September 27, 2011 Es gan neesmu drošs, vai tas ir ātrākais variants. Quote Link to comment Share on other sites More sharing options...
Kemito Posted September 27, 2011 Report Share Posted September 27, 2011 Es vispār daru pa vecai modei, selektoju num_rowus, ja ir lielāks par 0 tad ir, ja nē tad nu nav. Quote Link to comment Share on other sites More sharing options...
Grey_Wolf Posted September 27, 2011 Report Share Posted September 27, 2011 Es gan neesmu drošs, vai tas ir ātrākais variants. ja jazin pilnigi visi ieraksti bez WHERE , tad atraks buus COUNT(*) , kas vienkarshi atgrieziis ierakstu skaitu tabulaa, (MYSQL skaitu glabaa atseviskji, taa kaa nekaada parlase nebuus) Ja ar WHERE tad ir vienalga vai ID vai * ( protams ja ID ir primara atslega ) IMPHO num_rowus, buus mazliet lenaaks (nedaudz ...) jo MYSQL izmanto savu ieksejo mehanismu.. kas ir optimizets tieshi prieksh COUNT(*).. P.S. bet nu ipashi nevajag iesprinkt, jo starpiiba buus nieciiga ... Quote Link to comment Share on other sites More sharing options...
marcis Posted September 27, 2011 Report Share Posted September 27, 2011 MYSQL skaitu glabaa atseviskji, taa kaa nekaada parlase nebuus @Grey_Wolf tas attiecas tikai uz MyISAM. Varbūt vēl kāds engine, bet noteikti ne populārais InnoDB. Quote Link to comment Share on other sites More sharing options...
Gints Plivna Posted September 27, 2011 Report Share Posted September 27, 2011 Es gan sapratu, ka jāčeko specifiska ieraksta eksistence, kas atbilst noteiktiem nosacījumiem. Pieņemot, ka mums vajag zināt vai eksistē tikai 1 tāds ieraksts, bet nevis to skaitu, tad gadījumos, kad ieraksts var būt tikai 1, tad droši vien count(*) būs pilnīgi OK. Gadījumos, kad tādi ieraksti var būt lielā daudzumā count(*) sanāk tā kā nevajadzīgi par daudz info, jo mums jau vajag tikai nosacītu pazīmi, tāpēc ir vērts atlasīt tiešām reālu pazīmi, piemēram, šādi: select 1 from t where <nosacījumi> limit 1 Tad tiklīdz 1 ieraksts būs atrasts, varēs atgriezt rezultātu un nemeklēt visus pārējos 10, 100 vai miljons ierakstus. Gints Plivna http://datubazes.wordpress.com/ Quote Link to comment Share on other sites More sharing options...
vostro Posted September 27, 2011 Author Report Share Posted September 27, 2011 Man vajag vienu ierakstu pārbaudīt, tas ir telefona numurs! Quote Link to comment Share on other sites More sharing options...
daGrevis Posted September 27, 2011 Report Share Posted September 27, 2011 Nedaudz painteresējos, te ir varianti: EXPLAIN SELECT COUNT(`id`) FROM `table` EXPLAIN SELECT COUNT(*) FROM `table` SELECT EXISTS(SELECT 1 FROM `table`) (SELECT COUNT(`id`) FROM `table`) > 0 (SELECT COUNT(*) FROM `table`) > 0 EXISTS(SELECT * FROM `table`) Tagad tikai benčmarks jāuztaisa... :) Quote Link to comment Share on other sites More sharing options...
codez Posted September 27, 2011 Report Share Posted September 27, 2011 (edited) man ir metode, kurā notiek uzreiz datu fečošana un atgriežana vai null atgriešana, ja datu nav. Attiecīgi if ($dati=DB::query('SELECT * FROM data WHERE kautkas=%s',$kautkas)->row()){ print_r($dati); //darbojamies ar datiem } else { //datu nav, domājam ko darīt. } Edited September 27, 2011 by codez Quote Link to comment Share on other sites More sharing options...
daGrevis Posted September 27, 2011 Report Share Posted September 27, 2011 Ne vienmēr vajag arī datus... dažreiz vajag tikai uzzināt, vai dati eksistē. 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.