ORM 能不能这样

2013 年 9 月 28 日
 tioover
我设想,ORM 用算法判断,如果一个字段被频繁访问,就会被被判断为热点,对于热点的字段,自动的加载到内存中(比如说Redis)然后定时同步……

这种思路有意义吗?有没有成品?
2375 次点击
所在节点    数据库
12 条回复
Alex_L
2013 年 9 月 28 日
大部分ORM都有缓存和延迟加载一类的机制
ericls
2013 年 9 月 28 日
好像还是只有自己写 我也在寻找类似的
est
2013 年 9 月 28 日
那也只是频繁读啊,遇到频繁写的怎么办?
shiny
2013 年 9 月 28 日
频繁读取的,数据库本身就有 Query Cache 吧,而且可靠性很好。热点数据自己用 redis 实现也不费劲吧,关键是可靠。
tioover
2013 年 9 月 28 日
@est 频繁写就是写在内存啊,定时写入SQL
tioover
2013 年 9 月 28 日
好吧,那么可以讨论一下怎么判断热点数据

访问次数为y轴,时间为x轴,那么一个热点数据的曲线大致上是驼峰或者波浪型,可以通过导数来判断?
9hills
2013 年 9 月 28 日
@tioover 写 cache 的话数据一致性怎么解决啊
Alex_L
2013 年 9 月 29 日
没太明白你的意思。内存的空间是有限的,不经常访问的缓存数据会过期,换而言之缓存中的数据大都是热点数据。至于利用缓存不一致写缓存要根据业务场景来,比如点赞功能就不适合每次写数据库。这种行为应该根据业务场景对数据一致性的需求,由程序员自己判断,不应该由ORM做,而且反正做起来也很简单。
davepkxxx
2013 年 9 月 29 日
缓存框架就是干这个的。
kfll
2013 年 9 月 29 日
@tioover 频繁写就没这么容易了…
tioover
2013 年 9 月 29 日
@kfll
@Alex_L 对哦……
mengzhuo
2013 年 9 月 29 日
一个字段……做好数据库的优化其实比应用层的优化有用得多。
先检查query cache hit rate比较好,如果是MYSQL的话,可以开始考虑proxy+主-从了。
反正一般对已上线的服务都是先加硬件,再考虑代码优化。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/84077

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX