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

Mysql 用于检查登录详细信息(用户名和密码)的最佳查询,mysql,optimization,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 userna

这是检查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'

谢谢

希望
'password'
实际上是一个,并且您正在将应用程序中的两个文本作为传递

假设您在
(用户名、密码)
上有一个索引,“最佳”是:

SELECT EXISTS (
  SELECT * FROM login_details WHERE username = ? AND password = ?
)

通过这种方式,MySQL一旦遇到一个单一的结果。

根据我的经验,除非您处理大量记录(数亿条),否则索引方案远比您建议的查询之间的差异重要。此外,eggyal在存储散列密码方面是正确的!谢谢你的回答。在这种情况下,哪一个是最好的内部查询?此内部查询中的Select*、Select count(*)或Select 1之间是否存在性能差异?