gpt4 book ai didi

sql - Oracle 中的子字符串索引

转载 作者:行者123 更新时间:2023-12-04 13:34:12 26 4
gpt4 key购买 nike

根据SELECT,我刚刚发现我们当前的数据库设计效率有点低。我们执行最多的查询。根据特定国家的格式,IBAN 是位置坐标。

由于我们主要执行JOIN s 和 WHERE在某些表中的 IBAN 列的精确子字符串上,我的问题是关于为列的子字符串分配索引

我们是否被迫向表中添加冗余列和索引列? IE。添加列 NATION_CODE , IBAN_CIN , IT_CIN , IT_ABI , IT_CAB , IT_ACCOUNT (其中 IT_ 字段仅适用于以 ITXX 开头的帐户)每个都有适当的二级索引 是否有任何特殊类型的二级索引只能应用于列的子字符串?

第一个解决方案可能会使 DB 更加复杂,因为 IBAN 帐户一直在 DBMS 中使用(显然,我无法完全控制设计)。

谢谢

[编辑] 典型查询

SELECT * FROM DELEGATIONS WHERE SUBSTR(IBAN, 6, 5) IN (SELECT ABI FROM BANKS WHERE ANY_CONDITION)

提取目标帐户属于与条件匹配的任何银行的所有付款委托(delegate)。应改为
SELECT * FROM DELEGATIONS WHERE SUBSTR(IBAN, 1, 2) = 'IT' AND SUBSTR(IBAN, 6, 5) IN (SELECT ABI FROM BANKS WHERE ANY_CONDITION)

确保 BBAN 确实以数字形式保存银行代码 [6-11]

最佳答案

您正在寻找 function based index :

create index ix_substring on TABLE (substr(COLUMN, 4, 9))

关于sql - Oracle 中的子字符串索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8487520/

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