Ответ 1
Этот подход стоит дорого, так как каждый раз, когда вы запускаете этот запрос, MySQL должен будет изучить каждую запись в clients
и вычислить хэш SHA-1 своих id
и key
. (Я предполагаю, что clients
имеет более нескольких строк или, по крайней мере, что вы хотите использовать подход, поддерживающий случай, когда clients
имеет более нескольких строк.)
Почему бы вам не добавить новое поле, называемое (скажем) id_key_sha1
? Вы можете использовать trigger, чтобы сохранить заполненное поле и добавить index. Этот подход должен работать намного лучше.
Отредактировано для добавления:. Вы упомянули, что клиент, помимо передачи в этот хэш SHA-1, также должен указать имя пользователя и пароль? Я не знаю, как выглядит ваша структура таблицы, но я предполагаю, что было бы разумнее сначала найти запись клиента на основе имени пользователя, а затем сравнить хэш SHA-1 для этой конкретной записи, а не пытаться для поиска записи с помощью хэша SHA-1.