小编Rys*_*nis的帖子

这是索引MySQL数据库的TEXT列的正确方法吗?

我有一个从字符串到整数的映射.要将此映射存储在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)

从那时起,性能问题就消失了.我想问一下解决这个问题是否正确.

mysql indexing

9
推荐指数
1
解决办法
3378
查看次数

标签 统计

indexing ×1

mysql ×1