用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3195|回复: 3
收起左侧

网站效率问题主要从哪些方面优化?

[复制链接]
发表于 2012-5-6 22:20:02 | 显示全部楼层 |阅读模式
网站效率问题主要从哪些方面优化(如:上千万人数同时浏览首页   都不卡的)?怎么测试
有没有系统的书籍或其他的。  
SQL语句一般从哪些方面优化?例如一句"select * from table"    。可以从哪几方面优化这句SQL达到最效率。

有没有测试程序运行 和数据库查询 的工具推荐啊。

发表于 2012-5-29 18:34:33 | 显示全部楼层
这个问题估计搞前端开发的都比较关注,当然,优化可以从很多方面。包括硬件和软件等。希望一些有实际开发经验的牛人们可以在这里侃侃,互相长进呗。
发表于 2013-7-8 15:48:48 | 显示全部楼层
牛人在哪里..
发表于 2013-7-8 16:25:58 | 显示全部楼层
{:soso_e113:}首先我先说我不是牛人。
其次我每次去面试的时候,面试官都会问这个问题,这个问题是最基本的面试题。
我总结一下我在开发的时候的经验吧。
1,毫无疑问,索引,加索引有个规则,自增字段默认为主索引,而其他的索引是跟其他表相关联的字段,而且建议为数值型。毫无疑问效率会提升有时候不止10倍。
2,尽量不要使用select * from xxtable;这样能把所有数据取得出来而没有任何限制条件,数据表比较小的话还没什么,如果你的表数据超过10000,你就会发现你的查询越来越慢,内存使用得越来越大,如果人一多,数据库先被垮掉了,它处理不了那么多数据。合格的sql语句必须带上限制条件,limit,where是必须的。
3如果是用CI的话,建议在最底部打印出Benchmark统计的数值,一般是包括内存和执行时间,另外再附加一个SQL执行query的次数,这个可以使用$this->db->totla_queries();打印出来,你就会知道,你对这个操作执行了多少次查询,如果一个很小的功能却执行了几十个查询,说明你的sql写的不够好,基本上是用foreach执行sql查询,这样的话建议你优化下代码,比如联合查询一次把多个表的数据查询出来,然后再在php上格式化它的数据,要记住的是,Mysql服务器的负荷比PHP要重,能尽量少查询就能获得数据的,就一次性获取,不要foreach。
3,再说说前端技术吧
我记得我当时做一个游戏平台的时候,游戏的图片相当多,一个页面刷新下来,一共有180多个请求,结果是超过2M左右的图片,信息量大,导致整体的效率不高,页面打开也慢,所以我做了优化,第一个使用的是lazyload技术,先把html加载,然后根据屏幕滚动动态加载数据,2是使用了局部区域异步获取数据,比如某些区域其实是需要鼠标移动过去才加载的,如果用户不关心的话,可以不去点击它,那么它就不会加载数据,节省了流量,结果是省了流量,最后下来整个页面刷新的时候才30几个请求,比之前提高了5/6左右的效率。
具体的可以看看(声明:我不是做广告,我已经不在那家公司了。)
http://www.youxipai.com

点评

对于初学者,此贴绝对值得一读。  发表于 2013-9-2 10:30

本版积分规则