有什么方法可以让这个PostgreSQL查询更高效吗?

h22fl7wq  于 2023-06-22  发布在  PostgreSQL
关注(0)|答案(1)|浏览(157)

我正在尝试创建一个简单的查询,其中名字和姓氏列与电子邮件沿着显示,并且只显示密码长度小于12个字符的结果。

SELECT fname  || ' ' || lname fullname, email, LENGTH(password) passwordlen FROM users WHERE LENGTH(password)<12 ORDER BY passwordlen;

LENGTH(password)必须被写出两次,而不是使用passwordlen引用两次。有没有其他方法可以写出这个查询,使它更少冗余或更高效,而我所缺少的?也许使用子查询?
提前感谢您的任何建议。

zyfwsgd6

zyfwsgd61#

也许,只是也许,一个索引可能会有所帮助:

CREATE INDEX idx_password_lenght ON users(LENGTH(password));

但这取决于记录的数量、长度的分布和确切的查询(如果这真的有帮助的话)。检查查询计划。
但是,你怎么会有这么短的密码?而且这些也绝对不会存储为SHA256哈希的MD5。请检查您的安全策略。

相关问题