Mat*_*hew 3 index database-design datatypes hashing
我正在设计一个系统,在该系统中我需要能够使用文件或字符串 SHA3-256 哈希来搜索数据库。
例如,测试的哈希是
36f028580bb02cc8272a9a020f4200e346e276ae664e45ee80745574e2f5ab80
Run Code Online (Sandbox Code Playgroud)
SHA3-256 是 256 位。那是 32个字节。
TEXT
任何形式存储它,否则它将是 256字节(大小的 8 倍)。在索引时,如果您的数据库提供了任何 HASH 索引,它都可以工作。
从 PostgreSQL,
CREATE DOMAIN sha3_256 AS bytea;
CREATE TABLE datastore (
id int PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
myhash sha3_256
);
CREATE INDEX ON datastore USING HASH (myhash);
INSERT INTO datastore (id,myhash) VALUES
(1, decode('36f028580bb02cc8272a9a020f4200e346e276ae664e45ee80745574e2f5ab80', 'hex'));
Run Code Online (Sandbox Code Playgroud)
作为特殊优化,您可以将其存储为两个UUIDs
。虽然我可能不会打扰。