Если у меня есть идентификатор первичного ключа, нужно ли мне предложение AND? - PullRequest
0 голосов
/ 09 апреля 2020

Мне было поручено оптимизировать наши SQL звонки. У меня есть запрос:

SELECT * FROM bookmarks WHERE id = ? AND owner_id = ?

идентификатор - это PK

owner_id - это Index и FK

Так как у меня уже есть идентификатор. Нужно ли мне предложение AND owner_id = ?? Замедлит ли это запрос, если я его использую?

1 Ответ

0 голосов
/ 09 апреля 2020

Наверное, нет. Но это не дает никаких преимуществ. Я ожидаю, что даже оптимизатор MySQL будет достаточно умен, чтобы использовать индекс первичного ключа в этом случае.

Однако, если он случайно использовал индекс внешнего ключа, вы, вероятно, не заметите разницу в производительности.

Это добавляет очень, очень, очень небольшое количество накладных расходов для второго сравнения. Но это не может быть измеримо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...