如果我有一个说id的主键,并且我对该键进行了简单的查询,例如,

SELECT id FROM myTable WHERE id = X

它会找到一行然后停止查找,因为它是主键,还是最好告诉mysql通过使用LIMIT 1来限制其选择? 例如:

SELECT id FROM myTable WHERE id = X LIMIT 1

===============>>#1 票数:8 已采纳

使用“ LIMIT 1”是否可以加快对主键的查询?

不。它已经快了没有LIMIT 1 无论如何,有效地暗示了LIMIT 1

它会找到一行然后停止查找,因为它是主键

是。

这里根本不需要表扫描:这是基于键的查找。 找到匹配的行,到此过程结束。

===============>>#2 票数:5

无需担心这种“优化”。

根据唯一索引合约,将仅获取一行,并且数据库能够非常快速地找到所有(1)行。 之所以能够做到这一点,是因为支持索引(或主键)的基础结构支持按值快速查找。 不涉及表扫描。 (通常使用B树的变体,但它可能是基于哈希的,等等。我想智能查询优化器也可能能够根据有效的唯一约束传递其他提示,但是我不这样做。对此不够了解。)

  ask by cgweb87 translate from so

未解决问题?本站智能推荐: