В SQL выборке какой select Будет самый быстрый для подсчета кол. Записей?

программирование php MySQL базы данных sql

В SQL ВЫБОРКЕ, что быстрее работает если большая таблица..100 000 записей...посчитать нужно только количество записей
1-SELECT * FROM Table
2- SELECT COUNT ('id') FROM table
3 - SELECT COUNT(*) FROM TABLE
4 - или другой вариант?
Ответы:
2 кажись
первый вариант тебе не посчитает количество
что касается третьего, вот из документации mysql:
COUNT(*) is optimized to return very quickly if the SELECT retrieves from one table, no other columns are retrieved, and there is no WHERE clause
1. Не подсчитывает количество записей, а возвращает весь массив данных (все ряды со всеми значнеиями полей). Естественно, в этом случае читается с диска значительно больший объем данных, пересылается по сети также много данных.
2. Уже лучше, поскольку не читаются все поля и возвращается уже готовый результат - количество рядов. Но тем не менее, вы вынуждаете MySQL читать и делать проверки по столбцу id, что совершенно ни к чему, если вам надо просто получить количество строк таблицы.
3. Никаких лишних действий - пробегаем по таблице, подсчитывая только количество строк, без чтения каких-либо значений полей. Наиболее оптимальный вариант.
4. Ничего больше придумывать не нужно. Есть COUNT(*) из третьего варианта, который заточен по данную задачу. Зачем выдумывать что-то еще (а главное что еще можно придумать, чтобы было быстрее родного инструмента подсчета)?


12 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.