Jump to content
php.lv forumi

count(*)


MārisL

Recommended Posts

<?php include "_inc_/config.php"; 
$result = mysql_query('SELECT COUNT(*) FROM lietotaji');
while($row = mysql_fetch_array($result))
{
echo "COUNT(*)";
} ?>

 

Kā tur īsti vajadzēja izvilkt ārā to skaitli?

 

Nepieciešams lai būtu

 

Kopā reģistrējušies: tas_skaitlis

Link to comment
Share on other sites

Nu, kā uz to paskatās.

Visoptimālākais kods - bez koda.

Bet ja nopietni, ja lapai onlainā 500 useri un 100 000 reģistrēti, tad protams. Ja kāds reizi nedēļā ielien un 100 reģistrēti, tad nav svarīgi.

 

Pirmajam gadījumam es taisu cronā ģenerētu PHP inklūdi $TOTAL_USERS = x; ja baigi vajag to lapā rādīt.

 

Viss ir relatīvi ;)

 

Bet ja strikti - ok, SELECT COUNT(id) FROM table būs ātrāk, jo tajā gadījumā netiek skaitīti visi ieraksti, bet mysql vēršas pie indeksa.

Edited by NiTrino
Link to comment
Share on other sites

Ja id ir pirmārā atslēga, tad defaultajam MyISAM tabulas tipam (nezinu kā citiem, InnoDB toč tā nav) MySQL vispār nevēršas ne pie kāda indeksa, bet vienkārši atdod skaitli ar ierakstu skaitu. Šis skaitlis glabājas atsevišķi - iznāk, ka nevajag skriet cauri nekādiem tabulas ierakstiem. Tas nozīmē, ka darbības sarežģītība ir O(1) - konstante. Taču tavā SELECT id FROM ... gadījumā sarežģītība ir lineāra - O(n), jo nākas skriet cauri visiem tabulas ierakstiem.

Link to comment
Share on other sites

×
×
  • Create New...