【发布时间】:2020-04-09 20:36:35
【问题描述】:
我的任务是优化我们的 SQL 调用。 我有疑问:
SELECT * FROM bookmarks WHERE id = ? AND owner_id = ?
id 是 PK
owner_id 是 Index 和 FK
因为我已经有了身份证。我需要AND owner_id = ? 子句吗?如果我使用它会减慢查询速度吗?
【问题讨论】:
-
这取决于您的要求需要什么过滤条件。
-
如果
owner_id的值很重要,那么当您省略它时,您可能不会得到相同的结果,因此您得到错误数据的速度会稍快一些。如果没关系,为了代码的可维护性,你应该删除它。 -
@ÁlvaroGonzález 因为 PK 是唯一的,它应该只返回一条记录。因此,您是正确的,提供 owner_id 应该返回 1 或 0 记录。这是一个非常小的完整性测试。传入的 id 应该归传入的 owner_id 拥有 发布为答案,我会选择你。
标签: mysql sql optimization