Получение количества строк для таблицы в MySQL? - PullRequest
7 голосов
/ 19 июня 2009

Может кто-нибудь сказать мне, что он лучше appraoch в MySQL, когда дело доходит до определения количества строк таблицы: лучше ли сделать

SELECT COUNT(*) FROM TABLE_NAME

или для поиска количества строк в таблице TABLE в INFORMATION_SCHEMA?

Это была бы частая операция для расчета количества страниц для страниц?

Я должен добавить, что таблицы будут содержать не более нескольких тысяч строк.

Спасибо

Мартин О'Ши.

Ответы [ 2 ]

18 голосов
/ 19 июня 2009

В MyISAM, этот запрос:

SELECT  COUNT(*)
FROM    TABLE_NAME

мгновенно, так как он хранится в метаданных таблицы, поэтому этот запрос практически свободен, и он всегда будет получать правильный результат.

В InnoDB этот запрос будет подсчитывать строки по одной, что может занять некоторое время.

Так что если вам не нужно точное значение COUNT(*), вы можете запросить INFORMATION_SCHEMA.

1 голос
/ 07 июня 2013

Я бы также подумал об использовании SQL_CALC_FOUND_ROWS и SELECT FOUND_ROWS(), если вы найдете COUNT(*) слишком медленным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...