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

В MySQL 5, SELECT COUNT(1) FROM table_name е много бавен

Преброяването на всички редове в таблицата е много бавна операция; не можете наистина да го ускорите, освен ако не сте готови да преброите някъде другаде (и разбира се, това може да не се синхронизира).

Хората, които са свикнали с MyISAM, са склонни да мислят, че получават count(*) "безплатно", но всъщност не е така. MyISAM мами, като няма MVCC, което го прави доста лесно.

Заявката, която показвате, извършва пълно сканиране на индекс на ненулев индекс, което обикновено е най-бързият начин за преброяване на редовете в таблица innodb.

Трудно е да се отгатне от информацията, която сте предоставили, какво е вашето приложение, но като цяло е добре потребителите (и т.н.) да виждат близки приблизителни стойности на броя на редовете в големи таблици.



  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 намира всички редове, където вторият ред е дал стойности

  3. Как да активирате оператора за конкатенация на тръби в MySQL

  4. PHP mySql данни към JSON файл

  5. Как да ускоря избрания брой (*) с група по и къде?