精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-01-31
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-01-31
刑天战士 写道 翻遍了Agile Web Development with Rails也没找到怎么使用Lazy Load,如果没有的话,那么怎么实现类似的功能呢?
默认就是lazy load |
|
返回顶楼 | |
发表时间:2007-01-31
我的意思是,我只需要某些属性的lazy load,比如,一个Attachment,大多数情况下,我只需要它的文件名等信息,只有再下载的时候才需要他的内容,这样,我就需要把content这个属性lazy load,如何实现?
|
|
返回顶楼 | |
发表时间:2007-01-31
刑天战士 写道 我的意思是,我只需要某些属性的lazy load,比如,一个Attachment,大多数情况下,我只需要它的文件名等信息,只有再下载的时候才需要他的内容,这样,我就需要把content这个属性lazy load,如何实现?
Hibernate的属性lazy功能你成功的使用过吗? |
|
返回顶楼 | |
发表时间:2007-01-31
刚才试了一下,果然不行,文档上说要加入二进制指示代码,好麻烦……那如果Active Record想实现这个功能,怎么办?通常content很大,在不必要的情况下把他们取出来是不正确的……
|
|
返回顶楼 | |
发表时间:2007-01-31
刑天战士 写道 刚才试了一下,果然不行,文档上说要加入二进制指示代码,好麻烦……那如果Active Record想实现这个功能,怎么办?通常content很大,在不必要的情况下把他们取出来是不正确的……
拆开到另外一个表里面去,建立has_one关联。 |
|
返回顶楼 | |
发表时间:2007-01-31
引用 拆开到另外一个表里面去,建立has_one关联。
那请问 robbin 你的站内短消息的 content 也是拆分的吗? 很明显, 我们在消息列表的时候也是不需要读取 content 的. 尽管这个影响可能不是很大, 但是问题是客观存在的. 我个人认为, 如果是缓存了 Active Record 就不必考虑这些伤脑筋的事情了. |
|
返回顶楼 | |
发表时间:2007-01-31
不好意思, 刚不知为什么, 老乱码, 编辑了也是乱码
|
|
返回顶楼 | |
发表时间:2007-01-31
缓存太大的对象恐怕不好吧……比如资讯,有可能某些资讯(PDF格式)的content可以达到1MB以上,把这么大个东西放在缓存里面会会拖垮服务器的……
PS:我发这么FC的帖子没被投新手,实在是万幸…… |
|
返回顶楼 | |
发表时间:2007-02-01
Physon 写道 引用 拆开到另外一个表里面去,建立has_one关联。
那请问 robbin 你的站内短消息的 content 也是拆分的吗? 很明显, 我们在消息列表的时候也是不需要读取 content 的. 尽管这个影响可能不是很大, 但是问题是客观存在的. 我个人认为, 如果是缓存了 Active Record 就不必考虑这些伤脑筋的事情了. 短信的内容一般不会很长,整个表也不大,所以不必拆分,其实用不到的字段可以在find方法中指定:select参数,指明加载哪些字段。对于ActiveRecord是可以缓存,现在JavaEye使用比较频繁的model对象都使用了CachedModel,启用了对象缓存,效果还不错。但是这和拆不拆是两码事。像post表的text字段就会很大,单单这个字段的存储就会占整个数据库一半以上存储空间,导致扫描这个表非常耗时,即使加上:select参数,也帮助不大,所以拆分开以后,会提高很多性能。就拿posts表来说,如果不拆,整个表存储空间很大,count一次在我本地电脑都需要8秒种,但是把text字段拆出去以后,count一次只需要0.4秒。 |
|
返回顶楼 | |