回答:
COUNT(1)。これが最速の方法です。
誰もそれを言わなかったので:
show table status;
すべてのテーブルと、各テーブルの推定行を含むいくつかの追加情報をリストします。これは、phpMyAdminがデータベースページに使用しているものです。
この情報は、MySQL 4、おそらくMySQL 3.23でも利用できます-以前からの情報スキーマデータベース。
反対票があったため、表示された数がInnoDBおよびTokuDBに対して推定されていることを明確にしたいものであり、MyISAMおよびAria(Maria)ストレージエンジンでは完全に正しいことます。
ドキュメントごと:
行の数。MyISAMなどの一部のストレージエンジンは、正確な数を保存します。InnoDBなどの他のストレージエンジンの場合、この値は概算値であり、実際の値と40%〜50%程度異なる場合があります。そのような場合は、SELECT COUNT(*)を使用して正確なカウントを取得してください。
これはまた、MySQLの行数を確認する最も速い方法です。
select count(*) from table;
フルテーブルスキャンを実行すると、大規模な高負荷サーバーで数時間かかる可能性のある非常にコストのかかる操作になる可能性があります。また、ディスクI / Oも増加します。
同じ操作により、挿入と更新のテーブルがブロックされる可能性があります。これは、エキゾチックなストレージエンジンでのみ発生します。
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
あなたは、テーブルとテーブル内のいくつかのフィールドを持っている場合は巨大であり、それは良いでしょうDO NOT USE *それはメモリにすべてのフィールドをロードし、以下のように使用すると、より良い性能を持つことになりますのため
SELECT COUNT(1) FROM fooTable;
Santoshが述べたように、このクエリは適切に高速であると思いますが、すべてのテーブルをクエリするわけではありません。
特定のデータベースの特定のテーブル名について、データレコード数の整数結果を返すには、次のようにします。
select TABLE_ROWS from information_schema.TABLES where TABLE_SCHEMA = 'database'
AND table_name='tablename';
count(*)パフォーマンスを意識した正確なカウントの使用が必要な場合は、回答全体で非常に明確です
$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;`
tablename