现在有一张 mysql 的 data 表有 300 个 varchar 字段:value1 到 value300 ,想要支持模糊查询,
想到的办法是建立一张索引表,
id,
data_id, data 表的 id
number, 数据在 data 表中的位置
value, 数据的值
然后加上索引 data_id,number,value ,但是这样只能加速前缀匹配
现在有个想法,比如value 等于"abcdefghi"
就往 index 表插入以下数据,
abcdefghi,
bcdefghi,
cdefghi,
defghi,
...
这样就能支持 "%ced%"
的快速查询了,
但是数据量会很大,data 表数据百万的话,可能 index 就几十亿了,这种方案可行么?
大家有没更好的方案?比如说 index 表 用 elasticsearch?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.