发表于: 2017-09-24 20:57:59

1 741


今天完成的事情:

下载到下午,总算完成

好几个视频,还没看完,先写一些理解


明天计划的事情:

继续看,然后重新搞方案写sql语句


遇到的问题:无


收获:

dal分为三种

service
cache

db


db里分为两种表:
1:对象表

2:关系表


如果和缓存没关系,select * 是没有问题的.
缓存就是key value,根据key找到value.

key是select name from user where moblie=?


如果单写一个moblie值110的话,想查其他的value值时key值就会重复,不好分辨.所以key值要做的是保证唯一,又能区分不同含义


假如一条数据里某一字段要修改,那么还要重新进表里 查询比较麻烦
可以让key值为select语句,value值为对应id,然后再以id值为key,object为value,也就是查id会给出该条数据的所有内容.这样即使改变了字段里的一些内容,查询语句也不需要更改.只要where后的字段不被更改就行,这样命中率会更高.

这种是map查询.map就是一对一,给一个条件,查询一个语句

第二种是对象查询,也就是object.通过id去查object几乎是必中的

第三章是list查询,只不过value是list


moblie查id是map(因为mobile是唯一的)
name查id是list(因为可能会有同名)

id查user是object,(因为是查整个对象)


为什么不能使用跨表查询?

因为我们没法给跨表查询做缓存.命中率低


为什么不允许使用group,like,select *等语句?
理由如上,无法做缓存.

因为我们尽量只做单表查询.查到id之后根据id去取对象.


dal框架

比如说list缓存,这个

就是sql语句的名字,就是value

这就是key


返回列表 返回列表
评论

    分享到