すばやく簡単な質問があります。
次のSQLを含むテーブルがあります。
CREATE TABLE `users` (
`id` int(20) NOT NULL AUTO_INCREMENT,
`username` char(100) NOT NULL,
`password` char(100) NOT NULL,
PRIMARY KEY (`id`),
KEY `password` (`password`),
KEY `username_2` (`username`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=latin1
EXPLAINステートメントを次のように実行しようとしたとき:
EXPLAIN SELECT * FROM users WHERE username = 'xx' OR `password` = 'xx'
を持っていることを示す結果を受け取っていtype = ALL
ます。
ただし、EXPLAINステートメントを実行しようとすると、次のようになります。
EXPLAIN SELECT * FROM users WHERE username = 'xx' AND `password` = 'xx'
を持っていることを示す結果を受け取っていtype = REF
ます。
私の質問は、最初のクエリがALLを表示し、2番目のクエリがREFを表示している理由だと思います。
誰かがこれに光を当てることができれば、それは大いにありがたいです!ありがとうございました!!