Q1. SHA1 PK不会是递增/递减的数字。因此,在维护/搜索并在该键上建立索引时,数据库是否需要更多资源?如果我决定将其保留在数据库中作为40个字符值。
Q2. 我在这里读到:https://dev59.com/hnRB5IYBdhLWcg3weHHx#614483 将数据存储为二进制(20)字段。有人可以就此向我提供建议吗:
a) 我必须将此列创建为:类型=整数,长度=20,COLLATION=二进制,ATTRIBUTES=二进制吗?
b) 如何在MySQL或Perl中转换sha1值以存储到表中?
c) 这20个字符值存在重复的危险吗?
要求是按文件名搜索表格。用户提供文件名,我搜索表格,如果文件名不存在,则添加它。因此,要么在varchar(100)文件名字段上进行索引,要么生成一个带有文件名SHA1的列——希望对于MySql来说,这比对varchar字段进行索引更容易。此外,我可以从我的程序中使用SHA1值针对SHA1列进行搜索。怎么样?我选择PK,因为DBIx喜欢使用PK。对于系统而言,PK或INDEX+UNIQ的开销相同(所以我想)。