Подсчет строк таблицы



Что такое команда MySQL для получения количества записей в таблице?

380   11  

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(*) FROM `tablename`
select count(*) from YourTable

Если у вас есть несколько полей в таблице, а таблица огромная, то лучше НЕ ИСПОЛЬЗОВАТЬ* из-за этого загрузить все поля в память и с помощью следующих будет иметь лучшую производительность

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

    Ничего не найдено.