gpt4 book ai didi

mysql - varchar 和 int 列上的多重索引。但必须是全文

转载 作者:行者123 更新时间:2023-11-29 10:41:45 24 4
gpt4 key购买 nike

这是我的查询。

select distinct p_code from myTable 
where ((INSTR(LOWER(subject), LOWER('jpg'))) )
order by code1, code2 limit 400,20;

p_code : INT
subject : VARCHAR
code1 : INT
code2 : INT

有一个INSTR(subject),那么我需要将FullText索引添加到subject列。

并且有一个按 code1、code2 排序,所以我想我必须为这 3 列添加索引(主题、code1、code2)。

但如您所知,由于 INT 列,无法添加全文索引

遇到这种情况我该怎么办?

最佳答案

where ((INSTR(LOWER(subject), LOWER('jpg'))) ) 

-->

where subject LIKE '%jpg%'

或者可能

where subject LIKE '%jpg'

subject上使用以_ci结尾的排序规则。

但这不会显着加快查询速度,因为它必须扫描整个表。

即使您添加了 INDEX(code1, code2),并且优化器选择使用它,随着 OFFSET 的增加,它也会变得越来越慢。但这是可以解决的——通过 remembering where you left off .

FULLTEXT 不太可能有帮助。

另一方面...

如果您的 extent 列有时(或经常)为“jpg”,则

where `extent` = 'jpg'

INDEX(extent, code1, code2)

不必进行表扫描。 (不过,我的“分页”链接仍然适用。)

关于mysql - varchar 和 int 列上的多重索引。但必须是全文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45345180/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com