为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】: V8 0x7000d
【操作系统】:centos
【CPU】:
【问题描述】*:全文索引查询慢
我的表数据量在200W,因为有针对其中五个字段的检索需求,故在表中新增了一个fulltext_content字段,将五个字段的值拼接到这个fulltext_content新字段中。对该字段进行全文索引的创建:
CREATE CONTEXT INDEX idx_fulltext_search
ON approval_archive_base_info_test(fulltext_content)
LEXER DEFAULT_LEXER SYNC TRANSACTION;
创建完成之后,执行查询,发现执行如下语句的查询时间是1.665s
SELECT *
FROM approval_archive_base_info_test
WHERE CONTAINS(fulltext_content, '"科技"') > 0
LIMIT 100,100;
1.665s的查询时间有点慢了吧,这个效率是正常的吗?
再次测试:
使用like模糊查询,执行时间2.114s
SELECT *
FROM approval_archive_base_info_test
WHERE fulltext_content_noindex LIKE '%审批%'
LIMIT 300000,100
使用全文索引的查询,执行时间3.008s
SELECT *
FROM approval_archive_base_info_test
WHERE CONTAINS(fulltext_content, '审批')
LIMIT 300000,100;
为什么使用全文索引的查询比我使用模糊查询的效率还要低呢?