私はこのテーブルを持っています:
CREATE TABLE IF NOT EXISTS `usergroups` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`user_id` int(11) unsigned NOT NULL,
`group_id` smallint(5) unsigned NOT NULL,
PRIMARY KEY (`group_id`,`user_id`),
KEY `id` (`id`),
KEY `user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=5496 ;
このクエリを実行するとき:
EXPLAIN SELECT `UserGroup`.`user_id` FROM `usergroups` AS `UserGroup` WHERE `UserGroup`.`group_id` = 1 limit 30
その出力は次のとおりです。
1 SIMPLE UserGroup ref PRIMARY PRIMARY 2 const 543 Using index
何かがおかしいと思います! 543行に影響しましたが、最大30行に影響すると思います。それは本当ですか?
制限は、選択/影響を受ける行数に影響を与えます。 543は、結合とwhere句に一致する行の数です。