1

テーブルの合計行数を知る必要があるクエリを実行していますが、最初の 6 行のみを表示する必要があります。

それで、実行して返されたデータを印刷する方が速いselect count(*)ですselect * ... limit 6か?または、select *制限なしで、while ループにカウンターを入れて結果を出力するだけですか? 後者では明らかに mysql_num_rows を使用して合計を取得できます。

問題のテーブルには最大 100 万行が含まれ、クエリには where row = xxx 列がインデックス付けされる行が含まれます

4

2 に答える 2

1

FOUND_ROWS()を使用します。次に例を示します。

SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name WHERE id > 100 LIMIT 10;
SELECT FOUND_ROWS();
于 2012-09-28T17:27:39.790 に答える
0

2 つのクエリを実行します。カウント クエリはインデックスを使用するため、テーブル全体をスキャンする必要はなく、インデックスのみをスキャンする必要があります。2 番目のクエリは、テーブルから 6 行を読み取るだけで済みます。

于 2012-09-28T17:26:32.717 に答える