一段清理系统垃圾的代码(只用于windows)
11-17
discuz论坛在国内非常流行,用户众多。优秀的用户体验和超强的负载,也赢得了众多的好评。
但discuz毕竟是为中小型网站设计,很容易达到性能的瓶颈。在最近对discuz的改造和表结构的分析,做了以下的探讨,来提升论坛的性能。
第一步,当然就是分表。
技术实力不太强的用户(严重依赖mysql的用户),分表是最直接的做法(当然,有些功能会损失)。
分析一个运营两年的discuz数据库,库表大概是十几个G左右,posts数据表已经几个千万。
首先可以拆分的,就是post表了。根据情况,post表可以分10张,百张,规则可以哈希,也可以阶段自增(分表主键使用tid(帖子id))。分完表,可以看到一排post_**的表,每个表的数据量降到百万以下,速度就无太大影响。
第二个可以拆分的,是threads表,此表分表,可以水平分割方式水平的分割,可以根据论坛版块id进行分表,这样可以使每个表的数据量减小,但这样也损失了一个功能:全站标题检索。
通过以上两个表的改造论坛的承载能力能迅速见长。
底下会讨论高级优化改造得方法,且听下次分解。
天策:天策为唐王李世民的秘密部队,在地位上相当于御林军,在近代也可理解为8341部队。现在可谓特警或者特种部队。他们大多是民间的高人选拔进来,一身江湖豪气,但不缺皇家气度。
选择天策的玩家,大都充满了豪情壮志,并且充满权位的期望。玩家敢于在游戏中拼搏,并且主动担当帮会小队的领导者,为了集体利益可以牺牲自己,担当“人民天策”的角色。
万花:选择万花的玩家,多期望自己有谷主东方宇轩的宽广胸襟,又期望能在江湖中找到适合自己的桃园圣地。他们爱好清净,不愿理会江湖杂事,在江湖中不断修炼提高,成为人人尊敬的万花成员。万花的玩家的战斗更多注重自己的修炼,而非争得一名一例。
少林:天下武功出少林,加入少林的玩家一定抱着拥有江湖最高武功的目的。少林弟子不争功名利禄,以普度众生为己任。少林拥有极高的攻击的气血值,近战能力极强,在队伍中也是义不容辞的排头兵。选择少林的玩家大都把自己的目标隐藏在心底,不轻易张扬,隐居在平淡的江湖中,但路见不平,绝对拔刀相助。
七秀:大部分女玩家也许选择了七秀,也不乏一些男玩家也选择了七秀。七秀可以作为战斗的幕后英雄,技能以治疗为主。选择七秀的玩家肯定是富有爱心和奉献精神的。现实中,他们也属于乐意助人,脾气随和之士。
纯阳:这个真的不知道,回头分析。
mysql没有一个像mssql的客户端去管理,所以有了PHPMYADMIN,管理mysql不再单纯依靠命令行,但PHPMYADMIN似乎不是那么万能,偶尔也会耍耍版本细节的脾气。
最近使用mysql触发器,不想使用命令行编辑,但phpmyadmin调试缺比较麻烦,原来想的是先建立一个空的触发器,然后修改,后来发现修改迁移问题多的要死,在老王同学的帮助下,经过几个晚上努力,整理出一些规律。
调试的时候,可以在空的触发器上逐条增加语句,一点一点调试,这样很容易定位问题,迅速修改。
迁移的时候,不能直接编辑触发器拷贝里边的代码,我用的phpmyadmin是2.11.9*版本的,生成的代码虽然他自己认,但一迁移就出了问题,我还没去阅读PHPMYADMIN的代码,不知道代码如何产生,但begin end里的内容大致相同,不同的是两头的辅助语句。
两头的内容跟版本密切相关,用mysqldump导出的语句做模板,把过程添加到里边,基本就没什么问题了。
不同版本的语法稍有出入,没有详细总结,总之掌握了调试的方法,解决问题速度就会提升。
使用触发器后,原来十几次的交互,一次就可以解决。我尝试了下出发器和存储过程,发现开发成本都差不多,复杂度也是类似的,所以没有用存储过程。
最近修改UCH,改得头大,对他的东西大概也熟悉个七八。
暂且不用说他的代码质量,逻辑或者完善程度,但说这个产品的发展路子,这肯定是个有市场的东西。
UCH是国内最早搞开源sns的了,而且搭配上discuz这个用户量很大的东西,迅速在国内铺开。
当然要说代码质量,那个惨,bug无数。基本做PHP的程序员,死都不愿意改它。
但是很多项目还是拿来了,为啥?因为他适合中国的用户,为啥适合?抄facebook?当然也有一定关系,关键呢,是因为东西出来的早。
产品迅速抢占市场是老戴在discuz闭源收费到开源免费的一个战略性转变,也正是这个转变,让discuz有了更加快速的成长。
bug?功能的欠缺?每天在discuz官方网站上可以看到无数的抱怨。吵得,骂的,一群一群的,但仍然阻止不了新版本接连不断的发布。
用户就是在这样不断的期望失望再期望再失望中逐渐培养出来的。
ecshop,我自认为做的很好,只可惜推出较晚,被南边的大头抢了先机。老戴的产品肯定会发展好的,因为他已经不是一个程序员。