Middle
Co funguje rychleji: count(*) nebo count(název_sloupce)?
sobes.tech AI
Odpověď od AI
Ve většině systémů správy databází (DBMS) fungují count(*) a count(název_sloupce) podle odlišné logiky:
count(*)počítá všechny řádky, včetně těch, kde hodnoty ve sloupcích mohou být NULL.count(název_sloupce)počítá pouze řádky, kde hodnota ve specifikovaném sloupci není NULL.
Z hlediska výkonu je count(*) obvykle rychlejší nebo alespoň stejně rychlý, protože databáze nemusí kontrolovat hodnoty v konkrétním sloupci, pouze počítá řádky. V některých optimalizovaných enginech může count(*) využívat metadata nebo indexy pro rychlý počet.
Příklad:
SELECT count(*) FROM users; -- počítá všechny řádky
SELECT count(email) FROM users; -- počítá pouze řádky, kde email není NULL
Stručně řečeno: pokud potřebujete pouze celkový počet řádků, je lepší použít count(*) — je to obvykle rychlejší a přesnější.