我有一个快速而非常简单的问题。MySQL EXPLAIN语句显示所有类型
我有以下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
结果。
我想我的问题是为什么第一个查询显示所有,而第二个显示REF。
如果有人能说明这一点,非常感谢!谢谢!!