V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
manhere
V2EX  ›  问与答

东拼西凑弄了个PHP的博客程序,代码、MySQL等方面有什么优化技巧没?

  •  
  •   manhere · 2011-06-25 08:32:29 +08:00 · 4729 次点击
    这是一个创建于 4715 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Ctrl+C Ctrl+V 抄了大堆代码,目前还在本机上折腾,VPS挂了,没地儿放演示 -_||| 顺带求推荐个便宜稳定的VPS写blog用。

    简单弄了个算是MySQL的debug信息页脚输出:

    首页文章列表 Processed in 0.146112 second(s), 4 queries (主要是列表、导航)
    正文阅读页面 Processed in 0.114424 second(s), 9 queries (包含评论和导航、相关文章、上一篇下一篇、随机文章等)

    0.08--0.25s不定,查询比较多,已经精简了不少,惭愧。

    请教各位有什么优化的技巧?

    实在不行就生成静态页面了?目前在考虑弄个基于文件的“缓存”。
    8 条回复    1970-01-01 08:00:00 +08:00
    reus
        1
    reus  
       2011-06-26 17:28:23 +08:00
    给代码看看呗,没看过代码怎么给建议呢?
    qq286735628
        2
    qq286735628  
       2011-06-26 17:54:50 +08:00
    Hostrail,BurstNet ,DirectSpace
    HR的便宜但最低端,性能差
    另外两个性能差不多
    donwa
        3
    donwa  
       2011-06-26 17:55:46 +08:00
    模版缓存,数据缓存。
    dimlau
        4
    dimlau  
       2011-06-26 19:10:51 +08:00
    我个人比较喜欢静态页面…
    还有我比较在意模版系统,能不能不要让 php 混杂其中,总之一句话,Textpattern 和 Movabletype 大爱。
    manhere
        5
    manhere  
    OP
       2011-06-26 19:39:14 +08:00
    @dimlau 考虑到速度 不喜欢大量assign变量操作 使用了类似discuz!的模板引擎 不过现在考虑了一种方案:非登陆访客返回缓存的静态页面,登录的用户(少数,甚至只有自己)不缓存,这样对绝大数人速度好很多。

    另外,今天在另一台局域网机器安装了个环境一试,发现机器也有差异,新装的性能好很多:
    0.01s--0.05s 的样子,大部分在0.02s左右,看来我的机器要换了。。。
    m4ker
        6
    m4ker  
       2011-06-26 20:39:27 +08:00
    如果不发布并且流量不大的话这个效率应该算很不错了,优化最好等流量和数据量上来再进行,现在很难预测的。
    m4ker
        7
    m4ker  
       2011-06-26 20:43:00 +08:00
    如果没有很大的流量只进行sql方面的优化就可以有很大的提升的,先做sql优化,如果有必要再做缓存,如果个人用,模版引擎我觉得可有可无,只要做到逻辑和显示分离即可。
    glume
        8
    glume  
       2011-06-26 21:26:09 +08:00
    这个效率不算好,到0.01以下才行。不过个人玩玩无所谓,想快点blog有sablog,新的typecho也很快。

    我自己也慢慢的在写个简单的cms,基于punbb的,主要是用他的现成函数和用户部分。其实我对vbulletin更熟悉,不过就是因为楼主所说的效率的原因,才用了punbb,现在改用fluxbb也是基于punbb的。

    因为不是要做开源的项目,像drupal,joomla之类所以不用太在意方便性,这样就可以在性能上获得更多的空间。模板系统弄个简单的layout就行了,有个page,header,footer,就够了,主要就像楼上说的逻辑和显示分离,我没用模板引擎,因为但凡模板引擎都要消耗性能,字符串处理,就算是文件性能也算蚊子肉多少也是肉啊。所以我就直接用数组写在 php文件中,然后require,变量一致就行,简单高效。

    静态html当然好,不过我考虑了很久,还是觉得html的交互性太局限了,而且如果碰到并发多的情况,就太悲剧了。所以动态是必须的。但我考虑到主要是交互方面的使用,比如留言,回复之类,就仅仅这部分使用查询,其他的都用文件缓存,require一下就行了。

    其实现在性能的主要瓶颈还是在数据库方面,所以代码的效率也不是很关键,但一定要稳健,以前做vbulletin的时候深有体会,别看discuz比它负载强差不多一倍,但在单服务器上,vbulletin再苦再累从来不趴下,discuz就娇气了,负载一高,往往报错。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4852 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 08:30 · PVG 16:30 · LAX 01:30 · JFK 04:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.