【发布时间】:2017-06-30 05:31:07
【问题描述】:
select * from table where username="johndoe"
在 Postgres 中,如果用户名不是主键,我知道它会遍历所有记录。
但是如果是主键字段,上面的SQL语句会遍历整个表,还是只要匹配到username就终止。换句话说,“where”在主键列上运行时的行为是否不同?
【问题讨论】:
-
为什么会有一个名为
johndoe的列?有关数据库如何使用索引的详细信息,您可能需要阅读use-the-index-luke.com -
'johndoe' 不是一列。 “用户名”是一列。 'johndoe' 是列中的一个条目
-
"johndoe"是一个标识符(=column),'johndoe'是一个字符串值 -
非常感谢。我从来不知道双引号和单引号在 SQL 中的含义不同
-
@KeyurPanchal:不,不会。如果有索引,数据库将使用该索引来查找行。
标签: sql postgresql