0

假设一个表有一个 ID 列,PRIMARY KEY 和 AUTOINCREMENT。

如果我进行如下查询:

SELECT * FROM table WHERE ID = ?

有必要加LIMIT 1吗?

这会提高性能还是什么?

我将 SQLite 与 PHP 的 PDO 一起使用。

4

1 回答 1

5

如果它是主键,那么引擎应该做正确的事情。主键索引是一个unique索引,因此 MySQL 知道只有一个匹配值。

但即使没有,对性能的影响也会非常小。引擎将使用主键索引来找到正确的值,直接到索引中的正确位置。然后它将加载数据页面(为了满足select *)。

然后,要么立即停止。或者,它扫描并读取索引中的下一个值,然后停止。额外的开销将是读取索引中的下一个值。与加载数据页面相比,开销非常小。

如果你对这些东西感兴趣,你应该查看文档

于 2013-06-07T02:04:29.793 回答