最近在项目里看到一个感觉挺好的处理,一般对用户的订单号或者账号,会有需求根据比如后五位的查询,如果按照正常的处理 like %xxx%,这样我们都知道是无法走索引的,这样数据量大了,全表扫码很慢。那么怎么处理呢。
逆序存储
我们可以将订单号逆序存一个字段,并创建索引,比如用户的订单号是20241104001012345,那么逆序的字段就是54321010040114202
搜索条件逆序
那么我们接收的后五位的搜索条件是12345,将条件也逆序得到54321,就可以走索引匹配了。
逆序的方法
- StringBuilder.reverse()
- StringUtils.reverse()
- ....