创建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的查询速度
这种思维方式:其实就是分词关键词快速搜索实现技巧
这样来解决模糊搜索
首先 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的查询速度
这种思维方式:其实就是分词关键词快速搜索实现技巧