好的,所以我有一个问题:
select distinct(a)
from mytable
where
b in (0,3)
Run Code Online (Sandbox Code Playgroud)
什么会更快,上面或
select distinct(a)
from mytable
where
b = 0
or
b = 3
Run Code Online (Sandbox Code Playgroud)
有一般规则吗?
谢谢
在对网站进行用户身份验证时,是否应在数据库或网站中进行哈希生成和比较?
我的论点是网站应该将用户提供的密码(可能由Web服务器加密)传递给数据库.然后数据库用salt重新加密它并比较哈希值.数据库响应Web服务器用户的凭据是否有效.这样,最小的数据库离开数据库,基本上是是或否,没有存储的凭证信息.缺点是,数据库必须做更多的工作.
另一个论点是工作应该在Web服务器上完成.这里,Web服务器将创建哈希并从数据库请求存储的哈希并进行比较.在这种情况下,需要将salt从数据库传递回Web服务器以创建哈希.但是,随着Web服务器数量的增加,共享工作.
我个人认为第二种方法是潜在的安全风险.如果Web服务器受到危害,可以从数据库请求salt和哈希并轻松破解.
执行上述操作的最佳做法是什么?我忽视/遗失了什么吗?
谢谢