sql - 将查询限制为一条记录会提高性能吗

标签 sql mysql database

如果表只有一个匹配结果,是否会将查询限制为一条结果记录,从而提高大型(ish)MySQL 表的性能?

例如

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

如果只有一个具有该名称的记录?如果 name 是主键/设置为唯一怎么办?是否值得更新查询或者 yield 会很小?

最佳答案

如果列有

唯一索引:不,没有更快

非唯一索引:可能,因为它会阻止发送超出第一个匹配的任何其他行(如果存在)

无索引:有时

  • 如果有 1 行或更多行与查询匹配,,因为在匹配第一行后将停止全表扫描。
  • 如果没有行匹配查询,,因为它需要完成全表扫描

关于sql - 将查询限制为一条记录会提高性能吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34488/

相关文章:

java - 如何在java 7中向CachedRowSet添加列?

mysql - 什么在表上运行优化会产生如此巨大的差异?

mysql - 使用 setMaxResults 和 native 查询创建的 SQL 查询不正确

mysql - SQL conditional JOIN - JOIN point defined based on joined_table 条件

mySQL DATETIME 在日期之间选择

php - 连接MySQL数据库报错

mysql - 从mysql表中获取多个日期范围之间的所有日期

mysql - varchar m :d:Y H:i:s to date and datetime format conversion

MySQL 在单个资源 ID 上连接 3 个表

MySQL JOIN ON,如果列 x 不为空,否则列 y