gpt4 book ai didi

mysql - 在 Postgres 中使用前导通配符扫描反向字符串

转载 作者:行者123 更新时间:2023-11-29 13:50:14 25 4
gpt4 key购买 nike

SQL Server: Index columns used in like?

我已经尝试将上面链接中的查询方法与 Postgres 一起使用(改进了 0.3 毫秒),它似乎只适用于 MySQL(快 10 倍)。

数据库

User Load (0.4ms)  SELECT * FROM users WHERE reverse_name LIKE REVERSE('%Anderson PhD')
User Load (5.8ms) SELECT * FROM users WHERE name LIKE ('%Anderson Phd')

Postgres

User Load (2.1ms)  SELECT * FROM users WHERE reverse_name LIKE REVERSE('%Scot Monahan')
User Load (2.5ms) SELECT * FROM users WHERE name LIKE '%Scot Monahan'

做了一些谷歌搜索但不太明白,因为我对数据库很陌生。谁能解释为什么会这样?

最佳答案

要在 Postgres 中支持字符类型列的前缀匹配,您需要一个具有合适运算符类的索引:text_pattern_ops 用于文本等(除非您使用“C”语言环境...... )

或者您使用三元组索引来支持任何 模式 - 那么您就不再需要“反向”技巧了。

参见:

一旦索引可用于查询,您就会看到 大量 非常大的表的性能改进。使用 EXPLAIN 查看查询计划.

关于mysql - 在 Postgres 中使用前导通配符扫描反向字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42372344/

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