检查登录详细信息的最佳查询(用户名和密码)

Saj*_*ith 2 mysql optimization

哪个是检查MySql数据库中是否存在用户名和密码的最佳查询.

1)SELECT * FROM login_details WHERE username='username' AND password='password'
2)SELECT count(*)FROM login_details WHERE username='username' AND password='password'
3)SELECT count(Username)FROM login_details WHERE username='username' AND password='password'
4)SELECT 1 FROM login_details WHERE username='username' AND password='password'
Run Code Online (Sandbox Code Playgroud)

谢谢

egg*_*yal 10

希望'password'实际上是用户密码盐渍哈希,并且您将作为参数的应用程序中的两个文字传递给预准备语句.

假设你有一个索引(username, password),"最佳"将是:

SELECT EXISTS (
  SELECT * FROM login_details WHERE username = ? AND password = ?
)
Run Code Online (Sandbox Code Playgroud)

这样,一旦遇到单个结果,MySQL就会停止搜索.