ORM 能不能这样

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

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

访问次数为y轴,时间为x轴,那么一个热点数据的曲线大致上是驼峰或者波浪型,可以通过导数来判断?
9hills
2013-09-28 23:58:21 +08:00
@tioover 写 cache 的话数据一致性怎么解决啊
Alex_L
2013-09-29 00:46:52 +08:00
没太明白你的意思。内存的空间是有限的,不经常访问的缓存数据会过期,换而言之缓存中的数据大都是热点数据。至于利用缓存不一致写缓存要根据业务场景来,比如点赞功能就不适合每次写数据库。这种行为应该根据业务场景对数据一致性的需求,由程序员自己判断,不应该由ORM做,而且反正做起来也很简单。
davepkxxx
2013-09-29 01:27:47 +08:00
缓存框架就是干这个的。
kfll
2013-09-29 08:57:14 +08:00
@tioover 频繁写就没这么容易了…
tioover
2013-09-29 08:59:39 +08:00
@kfll
@Alex_L 对哦……
mengzhuo
2013-09-29 09:22:23 +08:00
一个字段……做好数据库的优化其实比应用层的优化有用得多。
先检查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