Mysql
 sql >> база данни >  >> RDS >> Mysql

Какво е по-добре в MYSQL count(*) или count(1)?

Това е MySQL отговор.

Те работят точно по същия начин - освен ако не използвате MyISAM, тогава специален случай за COUNT(*) съществува. Винаги използвам COUNT(*) така или иначе.

https://dev.mysql.com/doc /refman/5.6/en/aggregate-functions.html#function_count

За MyISAM таблици, COUNT(*) е оптимизиран за връщане много бързо, ако SELECT извлича от една таблица, други колони не се извличат и няма WHERE клауза. Например:

mysql> SELECT COUNT(*) FROM student;

Тази оптимизация се отнася само за MyISAM таблици, тъй като точен брой редове се съхранява за този механизъм за съхранение и може да бъде достъпен много бързо. COUNT(1) подлежи на същата оптимизация само ако първата колона е дефинирана като NOT NULL .

###РЕДАКТИРАНЕ Някои от вас може да са пропуснали черния опит за хумор. Предпочитам да запазя това като недублиран въпрос за всеки ден, когато MySQL ще направи нещо различно на SQL Server. Затова гласувах да отворя отново въпроса (с явно грешен отговор).

Горната оптимизация на MyISAM важи еднакво за

COUNT(*)
COUNT(1)
COUNT(pk-column)
COUNT(any-non-nullable-column)

Така че истинският отговор е, че те савинаги същото.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql име на поле от променлива

  2. скрипт за конвертиране на mysql dump sql файл във формат, който може да бъде импортиран в sqlite3 db

  3. Повторете низ няколко пъти в MySQL – REPEAT()

  4. Как работи функцията OCTET_LENGTH() в MySQL

  5. Как да използвате множество бази данни в Laravel