アプリ版:「スタンプのみでお礼する」機能のリリースについて

PHPとMySQLで、クエリーのselectを使わないで、
テーブル「test_T」の総データ数をカウントすることはできるのでしょうか。

ちなみに、
select * from test_Tをしてから、
mysql_num_rows()とすれば結果セットの行数はでるのですが、
selectで全データを出力するのはサーバに高負荷がかかる気がします。
select * の負荷は、データが多いと、やはりかかるのでしょうか。

以上、2点、よろしくお願いします。

A 回答 (5件)

SELECT COUNT(*) FROM test_T;



では、テーブルの中身を見に行きません。
テーブルを管理している情報を見に行きます。

explain SELECT COUNT(*) FROM test_T;

としてみてください。
テーブルを使わないって、情報が出るはずです。

テーブルが、どんなに巨大になっても、一瞬です。
    • good
    • 0

どのくらい違うかと言うのはfor文の中で何回かループさせてSELECT文実行を書いてみて実行時間を計ってみると差が明確になると思います。

    • good
    • 0

<?PHP


// 接続
$handle = mysql_connect(......);

// QUERY対象DBを選択
mysql_select_db('DB_NAME', $handle);

// SQLの設定とQUERY
$sql = "SELECT COUNT(*) as CNT FROM test_T";
$res = mysql_query($sql, $handle);
$row = mysql_fetch_assoc($res);

// DB切断
mysql_close($handle);

// test_Tのレコード件数を表示
echo "件数:{$row['CNT']}";

?>

連続スレ申し訳ございません。
間違いがありましたので、修正します。

echo "件数:{$row['cnt']}"; // ×
echo "件数:{$row['CNT']}"; // ○
    • good
    • 0
この回答へのお礼

早速の回答、ありがとうございます。
しかも、2回も答えていただけるなんて、ありがたいです。
SELECT COUNT(*) FROM test_Tで、できました!
こんなシンプルな命令があったとは・・・。
ところで、
SELECT *をするのと、SELECT COUNT(*)では、
どのくらい負荷に違いがあるのでしょう?

お礼日時:2005/09/27 23:04

<?PHP


// 接続
$handle = mysql_connect(......);

// QUERY対象DBを選択
mysql_select_db('DB_NAME', $handle);

// SQLの設定とQUERY
$sql = "SELECT COUNT(*) as CNT FROM test_T";
$res = mysql_query($sql, $handle);
$row = mysql_fetch_assoc($res);

// DB切断
mysql_close($handle);

// test_Tのレコード件数を表示
echo "件数:{$row['cnt']}";

?>

上記の流れで取得してみてはいかがでしょう。
    • good
    • 0

SELECT COUNT(*) FROM test_T


で取得できます。
    • good
    • 0
この回答へのお礼

早速の回答、ありがとうございます。
SELECT COUNT(*) FROM test_Tで、できました!
こんなシンプルな命令があったとは・・・。
ところで、
SELECT *をするのと、SELECT COUNT(*)では、
どのくらい負荷に違いがあるのでしょう?

お礼日時:2005/09/27 23:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!