HeidiSQLを使用していくつかのクエリのパフォーマンスを分析していますが、これに遭遇しました:EXPLAINコマンドによって返される行の量がテーブルに含まれる行と同じではありません。EXPLAIN、count(1)とテーブルの内容の間のMySQLクエリの不一致
クエリ:
ダミーからの選択数(1)を説明。結果:
- SELECT_TYPE:SIMPLE
- テーブル:ダミー
- タイプ:インデックス
- キー:idxF2F3
- key_lenに:10
- 行:2183
- 余分:インデックスを使用して
EXPLAIN SELECT * FROM Dummy;結果:
- SELECT_TYPE:SIMPLE
- テーブル:ダミー
- タイプ:ALL
- 行:2183
SELECT COUNT(1)ダミーFROM。結果:
- SELECT * FROM Dummy;結果:15列のテーブルX 2195行
は、私はまた、(F2およびF3)テーブルのキーのコマンド
select field1 count(\*)
from table\_name
group by field1
having count(\*) > 1
を使用し、それがF3には、重複を与えません。 f2の場合、いくつかの行について115,53,565,82,35,37,314,196,41,118,76,29,158,68、および308の重複がありますが、ここでは何も間違いはありません。
CREATE TABLE Dummy(
`f1` INT(11) NULL DEFAULT NULL,
`f2` INT(11) NULL DEFAULT NULL,
`f3` INT(11) NULL DEFAULT NULL,
`f4` VARCHAR(254) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
`f5` VARCHAR(254) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
`f6` VARCHAR(8) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
`f7` DATETIME NULL DEFAULT NULL,
`f8` BIGINT(20) NULL DEFAULT NULL,
`f9` BIGINT(20) NULL DEFAULT NULL,
`f10` DATETIME NULL DEFAULT NULL,
`f11` DATETIME NULL DEFAULT NULL,
`f12` BIGINT(20) NULL DEFAULT NULL,
`f13` DOUBLE NULL DEFAULT NULL,
`f14` INT(11) NULL DEFAULT NULL,
`f15` INT(11) NULL DEFAULT NULL
INDEX `idxF2F3` (`f2`, `f3`)
)
COLLATE='utf8_unicode_ci'
ENGINE=InnoDB
;
すべてのヘルプ:
表はこれで定義されていますか?私は類似の質問を検索しました。
あなたのお返事ありがとうございます@ ollie-jones!統計を更新した後、EXPLAINコマンドは2205行を戻します。私はこれがテーブルの_number行_と_key \ _len_の合計の結果であると仮定して正しいですか? –