我有一个从字符串到整数的映射.要将此映射存储在MySQL数据库中,我创建了下表:
CREATE TABLE map(
Argument TEXT NOT NULL,
Image INTEGER NOT NULL
)
Run Code Online (Sandbox Code Playgroud)
我为参数选择了TEXT类型,因为它的长度是不可预测的,目前最长的记录有2290个字符,平均长度是88个字符.
在我遇到性能问题后,我尝试在Argument列上添加索引,但发现我必须指定长度,所以为了避免这种限制,我添加了一个新的整数列,其中包含参数列值的哈希值(md5或其他).
ALTER TABLE map ADD COLUMN ArgumentHash INTEGER;
Run Code Online (Sandbox Code Playgroud)
和综合指数
CREATE INDEX argument_index USING HASH ON map(ArgumentHash, Argument(80));
Run Code Online (Sandbox Code Playgroud)
从那时起,性能问题就消失了.我想问一下解决这个问题是否正确.