锁定老帖子 主题:受限环境下的rails程序优化-DB篇
精华帖 (0) :: 良好帖 (5) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-03-26
别笑!我也加入了标题党 ,本来也算不上是什么受限环境嘛,就是共享的主机,国内的不说了,国外的哪个主机商现在都支持rails了, 看着不管HostMonster, GoDaddy 还是 LunarPages ,每月6、7美元, 几百个G的存储容量 ,每月上千G的带宽,看着都流口水。。。,不弄几个程序扔上去 , 都觉得对不起他们。
现在,21 -10=11, 还有10个 用户查询(user), 也许您说了 ,这就不用了吧?联合查询不就行了吗,比如:查询时候加一个 :include => :user 不就搞定了吗 ? 这里我也有一个问题,加上联合查询查询速度怎么就那么的慢呢?在我的笔记本上联合查询的速度甚至还比不上不用联合查询(使用多条查询)的速度,这里请教大家了,你们有没有这个问题呢?还是我的设置比如索引什么有问题?
也许有人问 ,干吗不用page 或者 fragement cache 来把这条查询也省了呢 ?呵呵 , 你说的很有道理呀 , 但是fragement 写起来就比较麻烦了,另外 比如说 “发布于2分种之前” 这种东西缓存起来就要增加一个时间的问题, 在没什么流量的情况下,还是将就凑合一下吧 ,但是缓存肯定要加上的,不然render的时间你就受不了,要是大家还有兴趣的化, 就等我的下一篇-缓存篇吧, 我一边写程序一边写文章纪录我的开发的 。
顺便把那个表的db migration 贴出,大家给看一下,为啥联合查询的速度会慢呢?如果谁还有兴趣想看看我写的东西的化,www.bujiande.com 不见得图片社区 , 欢迎欢迎,你说这有打广告之嫌,那我就跟你说,你吧之嫌给去掉,再加上一个字:软,就是打也是打软广告呀 :),另外我的空间还能放几个rails/php 程序 (最好你能有域名,我不想用我的2级域名了), 要是谁有有些创意的东东(要求原创),就放上来把 ,可以免费放x个月哦:),这个我们下面谈...
class CreateAlbums < ActiveRecord::Migration def self.up create_table :albums do |t| t.integer :user_id, :null => false t.string :user_login, :null => false , :limit => 20, :default => '不见得' t.string :title, :null => false , :limit => 128 t.text :description, :null => true t.integer :cover_image_id #default image t.string :cover_image_url #default image url t.integer :category ,:null => false , :default => 10 #cache for tags t.string :cached_tag_list #cache for votes count t.integer :cached_votes_count ,:null => false , :default => 0 #cache for comments count t.integer :cached_comments_count ,:null => false , :default => 0 #popular true. popular false. incoming t.boolean :bpopular ,:null => false , :default => false # true : published t.boolean :bpublished ,:null => false , :default => false # freeze album cantains wrong message / pic t.boolean :bfroze ,:null => false , :default => false t.timestamps end add_index "albums", ["user_id"], :name => "fk_albums_user" add_index "albums", ["bpopular"], :name => "fk_albums_popular" add_index "albums", ["bpublished"], :name => "fk_albums_published" add_index "albums", ["bfroze"], :name => "fk_albums_froze" add_index "albums", ["category"], :name => "fk_albums_category" end def self.down drop_table :albums end end
上面就是 db migration,其实在共享空间里面就是要节约资源,在rails 程序里面来讲就是要节约db资源 (就像本文里面用的冗余字段)和 计算资源 (render) , 比如 fragment cache , 减少 render 所需的计算量 , 我也才接触 ruby/ rails 不到半年, 还是慢慢和大家探讨吧 :)
还能上传图片,就传一个相册编辑功能的的照片吧,这个相册编辑费了我不少工夫(我不是Web程序员呀,调适很费劲的), 什么 in_place_editing , in place rich editing , slide bar , drag and drop , 无刷新文件上传都用上了 , 呵呵, 页面很丑 , 大家包涵 :)
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-03-26
我喜欢这种软文,很多有含量的关键词
|
|
返回顶楼 | |
发表时间:2008-03-26
rainchen 写道 我喜欢这种软文,很多有含量的关键词 谢谢 , 刚才跟朋友打赌 , 说没人回复不去吃饭 , 谢谢你 ,1。为了你的回复,2。感谢你让我能去吃饭 :) |
|
返回顶楼 | |
发表时间:2008-03-26
不见得 写道 rainchen 写道 我喜欢这种软文,很多有含量的关键词
谢谢 , 刚才跟朋友打赌 , 说没人回复不去吃饭 , 谢谢你 ,1。为了你的回复,2。感谢你让我能去吃饭 :) 有经验分享的就是好文,而且用了心写的,就该支持一下。只是JE较慢热,不要被消磨了热情才好,君不见本版很多精华帖都是0回复的吗, |
|
返回顶楼 | |
发表时间:2008-03-27
很original,很SEO -- for this topic
很web 2.0,很RESTful,很clear -- for http://www.bujiande.com/ |
|
返回顶楼 | |
浏览 2769 次