0

テーブルチームには1169行が含まれ、そのうち1133行にはUserIdフィールド!=0があります。「UserId」フィールドにインデックスがあります

クエリ:

EXPLAIN SELECT count(*) FROM teams WHERE UserId != 0

検査する行の推定値が1133に等しい出力を返します。

クエリですべての行を調べる必要があるのはなぜですか?この目的のためにインデックスを使用するだけではいけませんか?

ありがとうございました。

4

1 に答える 1

1

ほぼすべての行が必要なため(UserId!= 0と言ったため)、ほぼすべての行が調べられます。確かに、次に「カウント」を作成して、1つのレコードのみを表示しますが、それらをカウントするには、すべてをフェッチする必要がありました。あなたがどこをすべきか

select count(1) from teams where UserId = 100

次に、正確な値(UserId!=yyではなくUserId= XX)を要求しているため、数行を調べます。

于 2012-04-20T12:43:49.137 に答える