繁体   English   中英

MySql WHERE查询速度

[英]MySql WHERE query speed

我听起来可能很愚蠢,但是如果我指定多个WHERE子句,它会加快mysql查询的速度还是减慢它的速度?

哪一个会更快?

范例1:

SELECT id FROM table WHERE username='user'

范例2:

SELECT id FROM table WHERE username='user' AND country='US' AND email='email@gmail.com'

好吧,这完全取决于您要搜索的列是否定义了索引。

在示例一中, username必须具有索引才能具有更好的性能。

ALTER TABLE tableName INDEX (username)

在示例二中,三列也必须有一个索引,

ALTER TABLE tableName INDEX (username, country, email)

这取决于几件事,例如表的索引依据,但是限制结果集几乎总是比返回所有结果快。 与其他所有内容一样,对两者进行基准测试,然后再决定。

通常,第二个会更快,因为它将返回第一个结果集的子集。

但是, MySQL可能会错误地偏向于第二次查询的countryemail索引访问,而不是username或全表扫描的索引访问,这会降低查询速度。

如果您要问“复杂查询是否比简单查询慢”,那么答案将是“与查询需要执行的其他操作相比,解析时间通常可以忽略不计”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM