MySQL veritabanı satır toplam sayısını bilmek için daha hızlı yoludur?

6 Cevap php

Ben veritabanı bir tablodaki satır sayısını bilmek gerekiyorsa böyle bir şey yapın:

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

Updated: Ben bir hata yaptım, yukarıda benim gerçek yoludur. Ben tüm özür dilerim

Yani verilerin toplam sayısı tüm veritabanı üzerinden tarama kurtarıldı görüyoruz.

Daha iyi bir yolu var mı?

6 Cevap

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

Bu tabii ki zaman ve kaynakların büyük bir atık olan, veritabanı ve PHP arasındaki tüm veri aktarımı anlamına geliyor.

Bu değer ne için, kod aslında satır sayısını saymak olmaz - Tek bir satır temsil eden bir dizi öğe sayısını sayıyorsanız gibi, sen sütun sayısını 2 katına verirdim (ve mysql_fetch_array İkinizi verir Kolon başına dizideki girdiler - bir sayısal ve sütun adı için tek)

Sadece yapabilirsiniz:

SELECT count(*) FROM tablename;

Sorgunuz için. Sonuç satır sayısını içeren tek bir sütun olacak.

Ben veritabanı bir tablodaki satır sayısını bilmek gerekir

Belki burada bir şey eksik ama sadece bir tablodaki satır sayısını almak istiyorsanız bir WHERE koşulunu gerekmez. Sadece bunu:

SELECT COUNT(*) FROM tablename

NEREDE koşulu ile sadece bu koşulu yerine satır sayısını sayma olacak.

Eğer aşağıdaki SQL deyimini kullanmak için gidiyoruz:

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

Emin 'link' sütun üzerinde bir dizin var olun

aşağıdaki kodu kullanabilirsiniz

$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;