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

Дали mysql count(*) е много по-малко ефективен от count(specific_field)?

За InnoDB

Ако specific_field не е nullable, те са еквивалентни и имат еднаква производителност.

Ако specific_field е nullable, те не правят едно и също нещо. COUNT(specific_field) преброява редовете, които имат ненулева стойност на specific_field . Това изисква разглеждане на стойността на specific_field за всеки ред. COUNT(*) просто брои броя на редовете и в този случай може да бъде по-бърз, тъй като не изисква проверка на стойността на specific_field .

За MyISAM

Има специална оптимизация за следното, така че дори не е необходимо да извлича всички редове:

SELECT COUNT(*) FROM yourtable


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. KILL MySQL заявки с помощта на PHP, ако потребителят затвори браузъра или навигира от една страница на друга

  2. Entity Framework с mysql, проблем с главни букви на таблицата между linux и windows

  3. wordpress posts_orderby филтър с персонализирана таблица в плъгин

  4. Показване на таблици с LIKE и NOT REGEXP

  5. Не може да се добави ограничение за външен ключ MySql