gpt4 book ai didi

sql - 改进 Firebird 数据库上的 '% LIKE %' 查询

转载 作者:行者123 更新时间:2023-12-04 20:56:42 25 4
gpt4 key购买 nike

情况:

我正在尝试使用“LIKE”语句编写一个有效的查询来将一段文本放入带有短文本的列中。

型号:

Table 'EVENTSGENERAL' : { ID (KEY), GENERATOR_ (FK), DATETIME, COMPUTERNAME, OSLOGIN, DBLOGIN, INFOTYPE, INFO }

Table 'EVENTSGENERATORS' : { ID (KEY), GENERATOR_ (FK), SHORTNAME, LONGNAME }

Table 'EVENTSINFOTYPES' : { ID (KEY), GENERATOR_ (FK), VERSION_, INFOTYPE, DESCRIPTION }

索引: EVENTSGENERAL.GENERATOR , EVENTSGENERAL.DATETIME , EVENTSINFOTYPES.INFOTYPE一切升华。

我的查询:
SELECT FIRST @first SKIP @skip A.ID,B.LONGNAME,  A.DATETIME, A.COMPUTERNAME,A.OSLOGIN, A.DBLOGIN, C.DESCRIPTION, A.INFO
FROM EVENTSGENERAL A JOIN EVENTSGENERATORS B ON B.GENERATOR_ = A.GENERATOR_
JOIN EVENTSINFOTYPES C ON C.GENERATOR_ = A.GENERATOR_ AND C.INFOTYPE = A.INFOTYPE
WHERE C.DESCRIPTION LIKE '%VALUE%'

问题:

此查询将在超大数据库上运行。有什么办法可以改进吗?
我正在使用 Firebird 数据库。

提前致谢。

最佳答案

不,不幸的是不是,因为您在 % 的两边都使用通配符( LIKE )关键词。前导(开始)通配符意味着不能使用任何索引来帮助提高搜索速度,因此必须检查每一行是否符合条件。

您可以通过更改为 LIKE 'VALUE%' 来加快速度。反而;至少可以使用索引将被搜索的行限制为以 VALUE 开头的行。 .

关于sql - 改进 Firebird 数据库上的 '% LIKE %' 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9007269/

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