全文搜索与索引检查完全相同的文本
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
检查列中的“单词”。也就是说,他们做的事情不同。
请阐明真正的文本是什么样的以及真正的查询是什么样的。然后我们可以就 FULLEXT
与 BTREE
.
提出建议
我的文本太长,超过了索引的字节数限制。 文本没有任何 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
检查列中的“单词”。也就是说,他们做的事情不同。
请阐明真正的文本是什么样的以及真正的查询是什么样的。然后我们可以就 FULLEXT
与 BTREE
.