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