web-dev-qa-db-ja.com

制限は影響を受ける行に影響を与えますか?

私はこのテーブルを持っています:

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行に影響すると思います。それは本当ですか?

1
Arash Mousavi

制限は、選択/影響を受ける行数に影響を与えます。 543は、結合とwhere句に一致する行の数です。

2
JMD Coalesce