我有一个像下面这样的postgresql表。
CREATE TABLE "user" (
"id" integer NOT NULL,
"hash" char(40) NOT NULL,
"username" char(255) NOT NULL,
PRIMARY KEY ("id"),
UNIQUE ("hash"));
但是,由于哈希是40个字母,我想做一个像下面这样的功能索引来减少内存需求。
CREATE INDEX CONCURRENTLY on user (substr(hash, 0, 20))
这样做是否可以,或者只是生成另一个无用的索引?我怎样才能确保UNIQUE索引只从我的哈希索引前20个字符?
感谢。