sql >> Databáze >  >> RDS >> Mysql

Proč byste neměli používat DISTINCT, když můžete použít GROUP BY?

Pokud víte, že dva sloupce z vašeho výsledku spolu vždy přímo souvisejí, je to pomalejší:

SELECT DISTINCT CustomerId, CustomerName FROM (...)

než toto:

SELECT CustomerId, CustomerName FROM (...) GROUP BY CustomerId

protože v druhém případě musí porovnat pouze id, ale v prvním případě musí porovnat obě pole. Toto je trik specifický pro MySQL. S jinými databázemi to nebude fungovat.



  1. Záleží na pořadí tabulek v mysql?

  2. GRANT se zástupným znakem názvu databáze v MySQL?

  3. Najděte minimální nepoužitou hodnotu v tabulce mysql

  4. Enum v režimu spánku, přetrvávající jako enum