mysql - 全文搜索与索引检查完全相同的文本
问题描述
我有这么长的文本,超过了索引的字节限制。文本没有任何空格。它是 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)
);
插入查询会经常。
在这种情况下,哪一个是存储的最佳方面?性能怎么样?
或者有什么好的方法来改进带有这么长文本的选择查询?仅供参考,我使用 mysql 8.0
解决方案
- 标点符号,例如
/
,分隔“单词”的目的FULLTEXT
。 - “dbname/tablename”不是很长的文本——可能限制为 129 个字符。(所以,我不明白“索引的字节数限制”来自哪里。)
col = 'text'
检查整个列;MATCH..AGAINST
检查列中的“单词”。也就是说,他们做不同的事情。
请澄清真正的文本是什么样的,真正的查询是什么样的。然后我们可以就FULLEXT
vs提供建议BTREE
。
推荐阅读
- java - 如何获取尚未在 Google 课堂上交作业/课程(针对给定作业)的学生列表?
- amazon-web-services - 在 AWS 上为 Metricbeat 添加 AWS 指标 - 配置设置
- jquery - 添加目标空白 JQuery
- async-await - Alpine JS:X-data async 未启动 x-model
- r - 如何在 R 中为不包含标头的 .dat 文件创建 hist()?
- node.js - 查找一个并使用随机文档更新?
- python - Pandas 数据类型到 Python 原生数据类型
- vue.js - Nuxt:如何在文件中而不是在样式标签中拥有 css 全局样式
- php - 我必须遍历查询 1 中的 9600 个 DISTINCT 域并更新查询 2 中第二个表中的 id
- laravel - Laravel S3 存储桶权限