LIMIT 0,1会加快主键上的SELECT吗?

Peb*_*bbl 6 mysql query-optimization relational-database

有谁知道这两个查询之间是否存在任何速度差异(显然对于足够大的表):

SELECT field FROM table WHERE primary_key = "a particular value"
Run Code Online (Sandbox Code Playgroud)

要么:

SELECT field FROM table WHERE primary_key = "a particular value" LIMIT 0,1
Run Code Online (Sandbox Code Playgroud)

我应该注意,该primary_key字段实际上是一个主键.

现在LIMIT 0,1确实有帮助,否则查询将继续查找其他匹配.我假设当涉及主键时,它应该由于它的唯一性而自动停止.所以我的猜测是添加它不会有任何好处.

有没有人遇到过这个?我目前没有足够大的数据集来测试.我还假设相同的答案适用于任何已设定的字段UNIQUE.

Peb*_*bbl 8

因此,阅读Hammerite提供的信息(感谢您)后,explain在两个查询上运行会产生:

  • id = 1
  • select_type = SIMPLE
  • table = table
  • type = CONST
  • possible_keys = PRIMARY
  • key = PRIMARY
  • key_len = 767
  • ref = const
  • rows = 1
  • 额外=

其中将两个查询标识为CONST,链接定义为:

常量

该表最多只有一个匹配行,在查询开头读取.因为只有一行,所以优化器的其余部分可以将此行中列的值视为常量.const表非常快,因为它们只读一次.

因此,假设我正确地理解了两个查询,它们将被视为相同 - 这正是我所期望的.