1

400,000 行を超える MySQL データベースがあります。私の Web ベースのスクリプトには、ページ関数があります。必要なページ数を決定する手順の 1 つは、テーブル内の行数を返すことです。

テーブル名が であるとしましょうdata

データベース内の行数のみを返す最も効率的な方法は何だろうと思っています。

私は明らかに次のようなことができます:

$getRows = mysql_query("SELECT id FROM `data`") or die(mysql_error());
$rows = mysql_num_rows($getRows);

IDのみを選択するようにします。それでも、400,000 + ID 分のデータを選択してスタックに格納することになり (私が思うに?)、テーブルのステータスを見つけるなどの方法を使用するほど効率が悪いようです。テーブルステータスメソッドの使用方法が100%わからないだけです。

フィードバックと意見は素晴らしいでしょう。みんなありがとう!

4

2 に答える 2

4

使用回数

SELECT count(id) FROM data

カウントの取得の詳細については、この質問を参照してください。ID がテーブルにインデックスを持っていることを確認してください。


ここで、一意の行 の数を見つけるために、次のことができます

SELECT count(distinct(id)) FROM data


または、最大の ID番号を見つけたい場合(ID が自動インクリメンタルで一意の場合) SELECT max(id) FROM data、存在する最大の ID 番号を返すことを試みることができます。


これらの基本的な機能を学ぶために、このサイトを強くお勧めします: http://sqlzoo.net/

于 2012-10-10T16:14:19.453 に答える
2

400,000 行はまったく多くありません。シンプルにして、次のようにします。

select count(*) 
from `data`
于 2012-10-10T16:13:15.323 に答える