Sobes.tech
Middle

Kas darbojas ātrāk: count(*) vai count(nosaukums_stabiļam)?

sobes.tech AI

Atbilde no AI

Lielākajā daļā datu bāzes pārvaldības sistēmu (count(*) un count(nosaukums_kolonnas)) darbojas ar dažādu loģiku:

  • count(*) skaita visas rindas, ieskaitot tās, kurās kolonnās var būt NULL vērtības.
  • count(nosaukums_kolonnas) skaita tikai tās rindas, kurās norādītās kolonnas vērtība nav NULL.

Runājot par veiktspēju, count(*) parasti ir ātrāks vai vismaz tikpat ātrs, jo datu bāzei nav jāverificē konkrētas kolonnas vērtības, tā vietā tā vienkārši skaita rindas. Dažos optimizētos dzinējos count(*) var izmantot metadatus vai indeksus ātrai skaitīšanai.

Piemērs:

SELECT count(*) FROM users; -- skaita visas rindas
SELECT count(email) FROM users; -- skaita tikai tās rindas, kurās email nav NULL

Kopsavilkums: ja jums nepieciešams tikai kopējais rindu skaits, labāk ir izmantot count(*) — tas parasti ir ātrāks un precīzāks.