让模糊搜搜转换成等值条件搜索




创建1个两个字段SQL表 table1 两个字段分别是   姓   和  学生id      
这样来解决模糊搜索

首先 select * from table1 where 姓='张'   返回符合条件的所有张姓学生id集合

有了id就能从redis读出模糊查询的所有学生

组合查询要用redis实现就复杂了 ,还是用1个字段做条件来查询

再建立一个两个字段的表 table2   
分数范围最大值        学生id  
60                           100000     //不及格的学生编号 在60分以下
60                           100001     //不及格的学生编号 在60分以下
60                           100002    //不及格的学生编号 在60分以下
80                           100003    //及格的学生编号 在80分以下
80                           100004    //及格的学生编号 在80分以下
90                           100005    //及格的学生编号 在80分以下
90                           100006    //及格的学生编号 在90分以下
100                         100007    //及格的学生编号 在101分以下
100                         100008    //及格的学生编号 在101分以下
100                         100009    //及格的学生编号 在101分以下

将分数范围最大值字段建立索引 这样过滤查询就不会扫描全表了
例如 输入一个88分的 先要把88分在java或者php编程语言里快速归类算出分数范围最大值90
SQL查询条件就这样写
select * from table2 where 分数=90

假如要查询90分以上的,那么SQL这样写
select * from table2 where 分数=100

有了id就能从redis读出模糊查询的所有学生

那么redis学生的就用get  set这样的读写指令  不建议用hash  或者有序集合 因为他们的速度都没有get  set快  因为get 和 set是可以分布式读写的哦   有序集合和哈希类不能分布式读取 因为数据都集中到1台电脑上去了

假如学生是个1000万以上的记录表  上面的是按照大数据的玩法实现的  让数据冗余,可以提高SQL的查询速度

这种思维方式:其实就是分词关键词快速搜索实现技巧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值