亿级订单表 要对物流追踪号支持 LIKE %123% 这样的前后缀都模糊查询,现在的 MySQL 查一次要几分钟,必须上 ES 或者 ClickHouse 吗?另外归档数据也要查,有没有办法压缩存储数据

查看 757|回复 70
sockpuppet9527   
@laminux29 #11 gin index 了解一下 https://www.postgresql.org/docs/current/gin.html
encro   
哥直接给你出个主意。
对于模糊查询的,只支持最近 1 个月,这样你 1 亿可能就变成了 1 千万,好了,剩下的可以时间可以接受了。
encro   
这个问题,也是我换 pg 的一个原因。
@sockpuppet9527
dabingbing   
提示:请复制或输入完整订单号
wangyzj   
这个应该是寻找产品需求和技术的平衡点
这种需求双边模糊匹配,没有索引可以用,es ,ch 和 doris 这种应该都不会快
只能说分布能解决部分性能问题,但不是解决问题的根本办法
除非你在订单格式里面做文章
而且模糊匹配出的结果也太不注重隐私了
laminux29   
@skinny
OP 是希望用纯数字字符串当成子串来进行搜索,或者更严谨来说,是匹配,而且还不限定位置。这种匹配,在算法与数据结构的层面,是没办法加索引的,只能蛮干,这也是为什么这类业务很少见,而且搜索引擎对这种搜索也没办法做到高精准度。
laminux29   
@iseki
它后面写了 non-alphanumerics
alansfinal   
@laminux29 索引这些我也不懂啊,就是单纯看你发的这个链接,alpha 在英语指字母比如 abc ,numerics 指数字比如 123 ,alphanumerics 指字母+数字比如 a1b23c4 ,non-alphanumerics 就是非字母数字比如,。!@#¥%|
那么“pg_trgm ignores non-word characters (non-alphanumerics) when extracting trigrams from a string.“ 这句话不就代表 pg_trgm 能识别订单号吗?
yh7gdiaYW   
@changwei 全文索引纯废物,需要能分词才行,不适用自定义输的搜索条件
yh7gdiaYW   
@Morriaty 这种需求 starrocks 、doris 、clickhouse 直接无脑暴力搜就很快,es 这个场景不怎么样
您需要登录后才可以回帖 登录 | 立即注册

返回顶部