具有3000万条记录的搜索表

wfveoks0  于 2021-08-13  发布在  Java
关注(0)|答案(0)|浏览(287)

我有一个示例mysql数据库,只有一个表(innodb)包含以下列
id int主键
描述文本
表有超过3000万条记录,描述字段的长度可达1000个字符。
搜索此表中的某些记录最有效的方法是什么?例如,我需要以/contains开头的描述。
当我运行这样的查询时

SELECT * FROM tbl WHERE Description like '%abc'

这花费了太长的时间,因为like操作符扫描了我在google上搜索的所有表记录,发现有一个叫做全文索引的东西
我使用以下命令添加索引

ALTER TABLE tbl ADD FULLTEXT INDEX `DescriptionIndex` (`Description` ASC)

当我试图执行这样的查询时

SELECT * FROM tbl WHERE MATCH (`Description`) AGAINST ('"The sea is awesome"')

有时它需要很长时间,而其他时间工作良好的基础上,对参数的值,我不能确定问题
我需要知道我是否遗漏了什么或者有更好的方法来实现搜索。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题