我正在尝试找到最有效的方法来对MySQL进行文本搜索并返回部分结果。我的数据库包含超过1M行。它有一个带有字符串的列,该字符串可以为空,包含由|
分隔的标记。
有效的例子是:
yellow
,green|yellow|blue|brown
,,
green|blue
等。
标签列表会随着时间的推移而增长,因此不会修复。
我想对一个或多个标签进行搜索。例如:red
,red|yellow
,red|white|green
等
最好在每一行上进行字符串匹配,还是创建一个包含所有标记的表和包含这些标记的行索引?
另外,我想做部分比赛。例如,如果我查询red|green|blue
,我希望按顺序获得以下匹配项:
如果我创建第二个表格,其中标签指向原始表格中的索引,我可以在红色的行ID和绿色行的行之间进行交叉,但考虑到行数,这可能是很慢。
关于在哪里查看,现有解决方案等的任何帮助都会很棒!