我正在构建需要大量搜索查询的移动服务。
该服务基于MySQL数据系统,搜索查询不足以提供快速搜索服务。
因此,我决定使用倒排索引系统:
index Documents
1 a, b, c, d, e, f, g, h
2 c, k, i, j, k
这是倒立索引系统的简单结构。
我假设一行会有超过一千个文件。
我不确定“文档”列中应该使用哪种类型和长度?
我现在选择了VARCHAR(100000)。是否可以将长度设置为9999999?
答案 0 :(得分:10)
数据结构:
index document
1 a
1 b
1 c
...
2 c
2 k
index
输入INT
,document
输入CHAR(1)
。主键设置为index
和document
。
此数据结构的查询速度非常快 顺便说一句,我建议的结构是normalized。
从MySQL 5.0参考手册(The CHAR
and VARCHAR
Types):
[...]
VARCHAR
[...]长度可以指定为MySQL 5.0.3之前的0到255之间的值,5.0.3及更高版本中的0到65,535之间的值。
答案 1 :(得分:1)
TEXT 65,535 bytes ~64kb
MEDIUMTEXT 16,777,215 bytes ~16MB
LONGTEXT 4,294,967,295 bytes ~4GB