Более быстрый способ знать общее количество строк в базе данных MySQL?

Если я должен знать общее количество строк в таблице базы данных, я делаю что-то вроде этого:

$query = "SELECT * FROM tablename WHERE link='1';";
$result = mysql_query($query);
$count = mysql_num_rows($result);

Обновленный: Я сделал ошибку, выше мой фактический путь. Я приношу извинения всем

Таким образом, Вы видите, что общее количество данных восстанавливается, сканируя через всю базу данных.

Существует ли лучший путь?

6
задан Starx 27 May 2010 в 00:49
поделиться

7 ответов

$query = "SELECT COUNT(*) FROM tablename WHERE link = '1'";
$result = mysql_query($query);
$count = mysql_result($result, 0);

Это означает, что вы не переносите все свои данные между базой данных и PHP, что, очевидно, является огромной тратой времени и ресурсов.

Как бы то ни было, ваш код на самом деле не будет подсчитывать количество строк - он даст вам вдвое больше столбцов, поскольку вы подсчитываете количество элементов в массиве, представляющем одну строку (и mysql_fetch_array дает вам две записи в массиве для каждого столбца - одну числовую и одну для имени столбца)

18
ответ дан 8 December 2019 в 02:29
поделиться

Вы можете просто ввести:

SELECT count(*) FROM tablename;

по вашему запросу. Результатом будет единственный столбец, содержащий количество строк.

4
ответ дан 8 December 2019 в 02:29
поделиться

Если мне нужно узнать общее количество строк в таблице базы данных

Возможно, я чего-то не понимаю, но если вы хотите получить общее количество строк в таблице, вам не нужно условие WHERE. Просто сделайте следующее:

SELECT COUNT(*) FROM tablename

С условием WHERE вы будете подсчитывать только количество строк, удовлетворяющих этому условию.

3
ответ дан 8 December 2019 в 02:29
поделиться

Если вы собираетесь использовать следующий оператор SQL:

SELECT COUNT(*) FROM tablename WHERE link='1';

Убедитесь, что у вас есть индекс в столбце « ссылка »

0
ответ дан 8 December 2019 в 02:29
поделиться
SELECT COUNT(*) FROM tablename WHERE link='1';
10
ответ дан 8 December 2019 в 02:29
поделиться

используйте код ниже

$qry=SHOW TABLES FROM 'database_name';
$res=mysql_query($qry);
$output=array();
$i=0;
while($row=mysql_fetch_array($res,MYSQL_NUM)){
       ++$i;
       $sql=SELECT COUNT(*) FROM $row[0];
       $output[$i]=mysql_query($sql);
 }
$totalRows=array_sum($ouptput);
echo $totalRows;
1
ответ дан 8 December 2019 в 02:29
поделиться

http://php.net/manual/en/function.mysql-num-rows.php Вам нужно вот это, я думаю.

0
ответ дан 8 December 2019 в 02:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: