SylphGear的Cover显示和DB查询优化

前略,天国的美工。

我知道么个死熬胶+完美癌曾经直言不讳的吐槽咱的Blog界面好丑,但是没关系,咱的口味就是如此=_,=

其实我本来是不想折腾SylphGear的代码的,可是人一旦有点儿想法,心里开始痒起来,加上最近划水率占比很高,于是还是动手了。

主要改动了两个方面,文章摘要的Cover封面预览,然后就是系统的数据库查询优化。

大家都知道的嘛,只要打开鹚酱的Blog,鹚酱就会在首页和文章列表页喂大家吃水果/w\

可是当初为了省事儿,用了一行代码采用完全随机的方式返回一张水果图片,注意是完全随机不是真随机啦,作为PC,不花点力气哪来的真随机嘛。

不过暂且叫真随机吧,可是正因为是真随机,所以刷动页面的时候还是有很大概率,在六张水果图片里面,出现两张一样的水果图片的啦!

老是吃一样的果子也会厌的嘛,于是开始寻思着去优化他,最终决定:
1 使用一个随机种子,然后迭代一组图片出来,保证不会吃到一样的水果!
2 给文章添加Cover Meta,优先展示Cover Meta,如果没有 Meta 就依旧喂水果(这下总有点新鲜口味了吧)

优化完成后,具体效果见首页最新的那篇文章啦。

嗯,其实这就是个典型的“伪随机的上位和真随机的逆袭”的故事/w\

然后关于数据库方面的优化有两点:
1 咱终于给所有的表都加上索引了。
2 大半年过去,各种库又更新了,作为程序员你懂滴。

其实我想说,大部分程序员对于数据库,都没有索引这个概念吧,毕竟很多时候写的东西,量级非常小,加和不加索引区别不是特别明显。
但是呢,当你的数据量在2~10亿级别以上后,索引加不加速度可是天壤之别的说!

鹚酱也是如此,当初写SylphGear的时候根本不关心数据库的具体优化,毕竟文章也就那几篇,评论也就几百条,复杂的聚合查询也就两个,负载非常低,
然后服务器又是SSD的,说实话这个量级下 N^2 和 lgN 确实肉眼难辨。

但是作为一个合格的程序员,吾还是把代码快速梳理一遍后,把查询语句挑出来,建了几个聚合索引,OK!
真到亡羊补牢的时候,就为时已晚嘛!

然后呢,今天上午改动SylphGear的代码的时候,一开始就把咱給瞢了,SylphGear的代码大半年没改一行,忽然就启动不能了!
顺着异常面向stackoverflow编程,哦,原来是异步版的mongo驱动又更新了啊,这个那个的……

于是马上dirty hack了几行代码,既加上了对新版驱动的支持,又做了对旧版驱动的兼容,今天也是很平静的一天呢,晴空万里~
入行计算机这么多年,我发现,程序员的代码中起码有30%的业务逻辑,都是在做兼容hack吧(ry

于是,先就这样好了ლ(╹◡╹ლ)

Recent Comments
alair
August 04, 2017 at 09:27 AM
建议弄个垃圾评论过滤,要不队形不好看 -__-!
时时彩注册
October 28, 2016 at 00:27 AM
楼主文章写得不错 很有道理 http://www.xingshishicai.com
私彩平台排行榜
October 28, 2016 at 00:25 AM
很不错 值得学习借鉴 非常喜欢 http://www.shicaipingtai.com
黑彩
October 28, 2016 at 00:23 AM
来踩踩 支持下楼主 http://www.heichaipingtai.com
时时彩总代
October 28, 2016 at 00:20 AM
文章写得很好 很喜欢 http://www.shishicaipingta.com
分分彩
October 28, 2016 at 00:18 AM
个人很喜欢 不错 很值得推荐 http://www.fenfenwufencai.com
pk10
October 28, 2016 at 00:16 AM
虽然你更新不快 但我还是常会过来看的 http://www.beijingshaiche.com
澳门银座娱乐
October 28, 2016 at 00:15 AM
学到了不少知识,支持楼主 http://www.aomengyingzuo.com
澳门银座
October 28, 2016 at 00:09 AM
顶顶顶顶顶顶顶顶顶顶 非常不错 http://www.aomenyinzuo.cn
Angel
August 13, 2016 at 11:37 AM
捉到一只臭虫:puid为空或者不存在,http请求一直pending。。。
Mucid
August 15, 2016 at 16:06 PM
@Angel, 嗯,没有做空和有效性容错(懒
Leave a Reply