gpt4 book ai didi

mysql - SQL比较一个非常大的表中列的最右边的字符

转载 作者:行者123 更新时间:2023-11-29 01:44:28 25 4
gpt4 key购买 nike

使用 MySQL 和一个非常大的表(数百万个条目),我需要根据其中一个(索引)字段中最右边的 6 个字母找到一行。

我试过使用:SELECT * FROM 'users' WHERE field LIKE '%abcdef'

SELECT * FROM 'users' WHERE RIGHT(field,6) = 'abcdef'

这两个查询大约需要 8.5 秒才能完成。相比之下,如果我对整个字段使用 = 运算符,则需要 0.15 秒。

我现在想到的唯一想法是在包含该字段最右边的 6 个字母的表中创建一个额外的索引列,并对其使用 = 运算符。

任何更优雅的建议将不胜感激。

谢谢:)

最佳答案

The only idea I have in mind right now is to create an additional indexed column in the table containing the 6 rightmost letters of the field, and use the = operator against it.

这正是在 MySQL 中执行此操作的方法。

不幸的是,MySQL 还不支持 indexes on expressionsindexed views , 所以你必须按照你建议的方式去做。

相关

关于mysql - SQL比较一个非常大的表中列的最右边的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10673081/

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