Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
テーブルチームには1169行が含まれ、そのうち1133行にはUserIdフィールド!=0があります。「UserId」フィールドにインデックスがあります
クエリ:
EXPLAIN SELECT count(*) FROM teams WHERE UserId != 0
検査する行の推定値が1133に等しい出力を返します。
クエリですべての行を調べる必要があるのはなぜですか?この目的のためにインデックスを使用するだけではいけませんか?
ありがとうございました。
ほぼすべての行が必要なため(UserId!= 0と言ったため)、ほぼすべての行が調べられます。確かに、次に「カウント」を作成して、1つのレコードのみを表示しますが、それらをカウントするには、すべてをフェッチする必要がありました。あなたがどこをすべきか
select count(1) from teams where UserId = 100
次に、正確な値(UserId!=yyではなくUserId= XX)を要求しているため、数行を調べます。