全文搜索与索引检查完全相同的文本

full text search vs index to check exactly same text

我的文本太长,超过了索引的字节数限制。 文本没有任何 space。它是 dbname 和 table_name.

之类的组合

我将查询只检查完全相同 select * from table where column='text' 或者 如果我使用全文搜索,它可能会喜欢这样。 select * from table where Match (column) Against(text)

我不知道下面两个选项中哪个最好。 我将使用 text_example = '{dbName}/{tableName}' 进行解释,但实际上,它是至少 5 种字符串的组合。

选项1。使用全文搜索

选项2。使用索引 要使用索引,我必须将 text_example 拆分为 5 种类型。然后为每个类型创建索引。

create table info (
  dbName text,
  tableName text,
  index dbIdx (dbName),
  index tableIdx (tableName)
);

经常插入查询。

在这种情况下,哪个是最好的存储方面? 性能如何?

或者对于如此长的文本,有什么好的方法可以改进 select 查询吗? 仅供参考,我使用 mysql 8.0

  • 标点符号,例如/,为了FULLTEXT.
  • 分隔“单词”
  • "dbname/tablename" 不是很长的文本——可能限制在 129 个字符以内。 (所以,我不明白“超过索引的字节数限制”是从哪里来的。)
  • col = 'text' 检查整列; MATCH..AGAINST 检查列中的“单词”。也就是说,他们做的事情不同。

请阐明真正的文本是什么样的以及真正的查询是什么样的。然后我们可以就 FULLEXTBTREE.

提出建议