11 ответов:
SELECT COUNT(*) FROM fooTable;подсчитает количество строк в таблице.
посмотреть справочник.
потому что никто не упоминал об этом:
show table status;перечисляет все таблицы вместе с некоторой дополнительной информацией, включая оценочные строки для каждой таблицы. Это то, что phpMyAdmin использует для своей страницы базы данных.
эта информация доступна в MySQL 4, вероятно, в MySQL 3.23 слишком долгое время база данных схемы предварительной информации.
обновление
потому что было голосование вниз, я хочу уточнить, что показанное число оценивается только для InnoDB и TokuDB и это абсолютно правильно для двигателей хранения MyISAM и Aria (Maria).
Это также самый быстрый способ увидеть количество строк в MySQL, потому что запрос типа:
select count(*) from table;выполнение полного сканирования таблицы, что может быть очень дорогой операцией, которая может занять несколько часов на большом сервере с высокой нагрузкой. Это также увеличивает дисковый ввод-вывод
та же операция может заблокировать таблицу для вставок и обновлений - это происходит только на экзотическом хранилище двигатели.
InnoDB и TokuDB в порядке с блокировкой таблицы, но нужно полное сканирование таблицы.
У нас есть другой способ узнать количество строк в таблице без выполнения запроса select в этой таблице.
каждый экземпляр mysql имеет базу данных information_schema. Если вы запустите следующий запрос, он даст полную информацию о таблице, включая примерное число строк в этой таблице.
select * from information_schema.TABLES where table_name = 'table_name'\G
Если у вас есть несколько полей в таблице, а таблица огромная, то лучше НЕ ИСПОЛЬЗОВАТЬ
*из-за этого загрузить все поля в память и с помощью следующих будет иметь лучшую производительностьSELECT COUNT(1) FROM fooTable;
$sql="SELECT count(*) as toplam FROM wp_postmeta WHERE meta_key='ICERIK' AND post_id=".$id; $total = 0; $sqls = mysql_query($sql,$conn); if ( $sqls ) { $total = mysql_result($sqls, 0); }; echo "Total:".$total;`
вы должны использовать count() возвращает количество строк, которое соответствует указанные критерии
select count(*) from table_name;
просто
SELECT COUNT(*) FROM table;Вы можете указать условия, при которых после этого
SELECT COUNT(*) FROM table WHERE eye_color='brown';
Как отметил г, Я думаю, что этот запрос достаточно быстро, не запрашивая всю таблицу.
чтобы вернуть целочисленный результат количества записей данных, для конкретного имя_таблицы в частности база данных:
select TABLE_ROWS from information_schema.TABLES where TABLE_SCHEMA = 'database' AND table_name='tablename';
вот особый случай. Если вы никогда не удаляете данные из таблицы, вы можете просто использовать
auto_incrementidстолбец для подсчета количества строк. Пожалуйста, убедитесьidне устанавливается вручную при вставке данных в эту таблицу. Эта операция занимает всего миллисекунду.SELECT id FROM table ORDER BY id DESC LIMIT 1;
Comments