Jawaban:
COUNT(1)
, ini akan menjadi cara tercepat.
Karena tidak ada yang menyebutkannya:
show table status;
daftar semua tabel bersama dengan beberapa informasi tambahan, termasuk perkiraan baris untuk setiap tabel. Inilah yang digunakan phpMyAdmin untuk halaman basis datanya.
Informasi ini tersedia di MySQL 4, mungkin di MySQL 3,23 terlalu lama basis data skema informasi.
Karena ada suara turun, saya ingin mengklarifikasi bahwa jumlah yang ditampilkan diperkirakan untuk InnoDB dan TokuDB dan itu benar untuk mesin penyimpanan MyISAM dan Aria (Maria).
Per dokumentasi :
Jumlah baris. Beberapa mesin penyimpanan, seperti MyISAM, menyimpan jumlah yang tepat. Untuk mesin penyimpanan lain, seperti InnoDB, nilai ini merupakan perkiraan, dan dapat bervariasi dari nilai aktual sebanyak 40% hingga 50%. Dalam kasus tersebut, gunakan SELECT COUNT (*) untuk mendapatkan penghitungan yang akurat.
Ini juga merupakan cara tercepat untuk melihat jumlah baris pada MySQL, karena permintaan seperti:
select count(*) from table;
Melakukan pemindaian tabel penuh apa yang bisa menjadi operasi yang sangat mahal yang mungkin memakan waktu berjam-jam di server besar beban tinggi. Ini juga meningkatkan disk I / O.
Operasi yang sama mungkin memblokir tabel untuk memasukkan dan memperbarui - ini hanya terjadi pada mesin penyimpanan eksotis.
InnoDB dan TokuDB OK dengan kunci meja, tetapi perlu pemindaian tabel lengkap.
Kami memiliki cara lain untuk mengetahui jumlah baris dalam tabel tanpa menjalankan select
kueri pada tabel itu.
Setiap instance MySQL memiliki basis data information_schema. Jika Anda menjalankan kueri berikut, itu akan memberikan detail lengkap tentang tabel termasuk perkiraan jumlah baris dalam tabel itu.
select * from information_schema.TABLES where table_name = 'table_name'\G
Secara sederhana:
SELECT COUNT(*) FROM `tablename`
select count(*) from YourTable
Jika Anda memiliki beberapa bidang dalam tabel Anda dan meja Anda besar, lebih baik JANGAN GUNAKAN *
karena memuat semua bidang ke memori dan menggunakan yang berikut ini akan memiliki kinerja yang lebih baik
SELECT COUNT(1) FROM fooTable;
Seperti yang disebutkan oleh Santosh , saya pikir permintaan ini cukup cepat, sementara tidak menanyakan semua tabel.
Untuk mengembalikan hasil bilangan bulat dari jumlah rekaman data, untuk tablename tertentu dalam database tertentu :
select TABLE_ROWS from information_schema.TABLES where TABLE_SCHEMA = 'database'
AND table_name='tablename';
count(*)
dengan kesadaran kinerja
$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;`
Jika Anda memiliki kunci utama atau kunci / indeks unik, metode yang lebih cepat mungkin (Diuji dengan 4 juta tabel baris)
SHOW INDEXES FROM "database.tablename" WHERE Key_Name=\"PRIMARY\"
dan kemudian mendapatkan bidang kardinalitas (hampir instan)
Waktu di mana dari 0,4 hingga 0,0001 ms
tablename