如果大型(ISH)MySQL表只有一个匹配结果,将查询限制到一个结果记录会提高性能吗?

例如

 select * from people where name = "Re0sless" limit 1

如果只有一条记录有这个名字?如果name是主键/设置为unique呢?这是否值得更新查询,或者yield 会很小?

推荐答案

如果该列具有

a unique index: no,美元,不会更快.

a non-unique index: maybe,,因为它将阻止发送超出第一个匹配行(如果存在)之外的任何其他行

no index: sometimes

  • 如果有1行或更多行与查询匹配,则返回yes,因为在匹配第一行之后,全表扫描将暂停.
  • 如果没有与查询匹配的行,则返回no,因为它需要完成全表扫描

Database相关问答推荐

如何替换对象数组内的数组元素

1-2400之间格式奇怪的时间数据

芭蕾舞女演员坚持 1:N 关系

Pocketbase 中的 SQLite 数据库可以根据自己的喜好进行修改吗?

使用 Java 对 mysql 数据库进行简单备份和恢复

如何连接到 MDF 数据库文件?

Spring Framework 中的默认隔离级别

Spring Boot:如何使用多个模式并在运行时动态 Select 使用哪一个

在 Slick 3 的事务中执行非数据库操作

SQL Server 2008 中的 Open Table go 了哪里?

SQL Server 2005 是否具有与 MySql 的 ENUM 数据类型等效的数据类型?

没有自动增量的sqlalchemy主键

如何从 PostgreSQL 数据库中的文本文件加载数据?

在 postgresql 中将 varchar 列升级为枚举类型

将一行连接到另一个表中的多行

sqlite 表中的最大行数

SQL 截断数据库?如何截断所有表格

分离实体和被管理实体

如何在数据库中表示树状 struct

Cassandra - 事务支持