Loading...

MySql查询耗时的问题

Filed under: PHP,网站技术 — 江东 @ 2008-09-27 22:00:51 才(9)条评论

感谢bluehost的CPU限制,让我对SQL查询的效率进行无限的追求。这两天CPU老是超标,我仔细查看了日志,我的这个bloggermap也他的一份“功劳”,特别是RSS阅读那一块,一个查询就占据了6秒,再加上其他几个合租伙伴的“功劳”(已经给他们发送邮件),很容易就超过30s了,所以今天晚上回来继续优化。

首先我们来看看这段关于MySQL查询的分析

# Query_time: 4 Lock_time: 0 Rows_sent: 10 Rows_examined: 74584
use sevtiger_bloggermap;
SELECT sample_blogs.id blogid,
sample_blogs.url blogurl,
sample_blogs.feedurl feedurl,
sample_blogs.name blogname,
sample_article.id id,
sample_article.title title,
sample_article.content content,
sample_article.description description,
sample_article.link link,
sample_article.author author,
sample_article.timestamp timestamp
FROM sample_article LEFT JOIN sample_blogs ON sample_blogs.id = sample_article.blogid WHERE 1 ORDER BY sample_article.timestamp DESC LIMIT 17800,10

整个查询耗时4秒,查询涉及到的行数有74584,实际输出10行,我们可以看到,整个查询的效率并不高。 (read on …)

大家都在谈,我偏不谈

Filed under: 生活工作 — 江东 @ 2008-09-27 21:07:17 才(13)条评论

555,伤心啊,很久都不变,现在还下降了,我不说是什么,我若不肯说,你就别问!

祝订阅我blog的朋友国庆快乐、假期愉快;

祝经常光顾我blog的朋友国庆快乐、假期有惊喜;

祝不小心溜进来的朋友开心健康!

如何避免Bluehost的CPU超标

Filed under: PHP,网站技术,虚拟主机 — 江东 @ 2008-09-27 16:23:50 才(3)条评论

曾经一度想放弃bluehost,主要的原因是因为“长城”、越来越差的服务器和响应速度不断变慢的livechat(当然这都是oversell的结果),然而在盛会之后,我发现bluehost的响应速度和SSH的稳定性第一次破天荒的超过了dreamhost,于是又有回归bluehost的想法了。

但是bluehost的CPU超标又严重困扰着我,熟悉storyday的朋友可能都知道,我用的bluehost基本都是几个人分享的,所以CPU超标是难免的。当然CPU的控制对于任何一个虚拟主机商来说都是很有必要的,国外知名的虚拟主机如bluehosthostgatorMT都有严格的CPU限制,这也是虚拟主机能稳定运行的一个保证,如果你是真正的想做一个站点,就用这样的主机,如果是采集站点,还是用其他的主机,如所谓的全能主机吧,否则频繁的CPU超标会让你严重不爽。当然即使是正规的站点,也会出现CPU超标的问题,那么我们就应该考虑优化自己的程序了。

虚拟主机的CPU超标的判断一般都是根据mysql执行时间来计算的,如果一分钟之内,所有的mysql查询执行时间超过了30秒,那么CPU就出现超标,网站将会在接下来的一分钟之内被挂起,所以要解决超标的问题,就应该从Mysql查询开始,下面我从3个方面来谈谈如何优化,仅供大家参考:

  1. 静态化你的站点。这个不用多说,我们都知道,静态化的页面对服务器的影响是最小的(当然我这里说得不是urlrewrite伪静态,发现很多朋友把这种方式也称之为静态,好像有点不妥),如果你使用wordpress,可以使用 cos-html-cache来进行静态化;
  2. 优化MySQL查询。在mysql查询中,尽量使用索引,这样能大大的提高Mysql查询速度。如果数据过多,就算使用limit 100000,10这样的限制查询,即使获取的数据只有10条,执行的时间也会变得很慢,那么这个时候就得考虑查询的精准化了,可以采用其他条件限制mysql遍历整个数据表;
  3. 使用google或者百度的站内搜索。很多web程序,在搜索的时候使用的都是类似” SELECT * FROM table where content like ‘%西洋美女%’;”的SQL语句进行查询的,而这种查询往往是最消耗时间的。SQL会对整个数据表进行遍历,遍历的时候还得要处理content中的字符,它使用的时间一般会是” SELECT * FROM table WHERE 1″ 这样语句的数十倍到上百倍,所以站内搜索,建议采用google等搜索引擎提供的接口,如本站的站内搜索。一方面这样的方式节约了服务器的负载,另外一方面这样的搜索反而更加精准。

优化的方法多种多样,我这里暂时只列举上面3条,其他的欢迎大家补充,不过storyday还是强烈建议你静态化你的网站,如果缓存的命中率比较高的话,静态化带来的只有好处,想好了么,或许你的blog也需要缓存

MEYU 自行阉割的最高境界

Filed under: 互联网事 — 江东 @ 2008-09-27 11:14:33 才(3)条评论

没有办法,自行了断总比拔网线要好!

看到gtalk上一朋友的签名为“惊弓之鸟”,如今G××F××W也让我成了惊弓之鸟。

优化SQL查询真不容易

Filed under: PHP,网站技术 — 江东 @ 2008-09-27 10:02:31 才(2)条评论

bluehost真是好啊,为了防止BH超标,我不得不努力改进SQL查询,不得不努力提高缓存的命中率,也不得不把部分占用SQL查询时间的脚本搬到dreamhost上!

看来,应该继续加深学习数据库的知识了,合理设置index是很有必要的了,要不将无法处理日益增长的数据了,尽量不用like查询,否则轻易都能占据10秒以上的时间。4万多条的数据如果查询不当很容易导致SQL运行时间过长的,其实别说是4万多条,即使部分朋友的blog才几千条数据,由于查询不当就轻易的能占据7 8秒的时间,看来优化SQL查询是一个比较长期而艰巨的任务了。

当然,目前的优化方向只有两个:缓存和优化SQL,缓存是基于PHP端,目前在bloggermap.org上已经做足了缓存,那么下一步就是优化SQL查询了,特别是对于limit begin,per之类的查询更是如此!

中小企业的办公信息化

Filed under: 生活工作 — 江东 @ 2008-09-26 21:58:17 才(3)条评论

说实话,我一直很疑惑什么样的企业才叫中小企业,100W的年营业额应该也算小企业,1000万也应算小企业,那么10个亿的呢,算中型企业还是大型企业,我无从得知。现代办公就离不开办公自动化,否则效率将会受到极大的影响。那么就我个人的经历,我来谈谈中小企业的办公IT化吧,本日志中涉及到的企业有3个,一个是我自己所在的公司,几十亿营业额的香港上市公司,另外2个是曾经用过cosbeta所开发的办公OA的旅行社,可能年营业额也就几百万左右,反差很大!

cosbeta自己所在的公司从2006年开始就一直在进行信息化改造,包括网络的改造,保密网络的建立等等。就我自己的感受来说,觉得这个过程并不顺利。在初期,员工的电脑中毒、员工的电脑出现软件故障都得有专门的人进行跟踪,所以搞得既影响效率又影响心情。而在IT部门的改造中也遇到很多的问题,比如网络无故的中断、电脑被防水墙拖死等等。所以这个时候我就在想,如果改造的过程中,有专门的IT设备厂进行跟踪指导,是不是会更加流畅(当然我不太清楚整个公司的网络改造是否有相关的IT设备厂家参与,我不是信息中心的),不过由于我所在的公司有专门的资讯管理部,所以整个改造起来也算是比较成功。

那么cosbeta经历的另外两家小公司就不是那么顺利。公司A和B同时使用了cosbeta编写的同一个办公软件,对于A公司,由于cosbeta经常光顾,所以也很有即使的技术支持,虽然经过漫长的三个月,该公司的员工总算是可以顺利的掌握了软件的应用了,于是到目前为止,他们已经离不开这个软件了。而另外一家公司B,由于办公人员对电脑知识的匮乏和本身对软件的排斥,到现在为止,这个软件都还没有用上,即使他们已经知道A公司在使用此软件后将工作效率提高了数倍。当然,硬件的实施也是同样的道理,由此看来,任何一个公司的信息化过程都需要强有力的技术后盾,而不仅仅是购买一些硬件和软件那样简单。

今天cosbeta看到惠普的一个新型的营销方式,我觉得这种方式将会有明显的效果的,虽然价格也是一个产品能否占据市场的重要条件,但是低价无用的产品或者是低价难用的产品也不会被一个精明的采购者所认可的。于是,惠普决定不再采用低价的方式进行IT设备的促销,而是开展一系列交流活动-“惠普英特尔全程助力专家讲堂”,通过这样的方式,直接切人中小企业在信息化过程中的痛点,向中小企业传授相关的解决方案,这样也就更加有利于中小企业的信息化普及,那么产品也就更容易推广了。其实对于用户来说,要求很简单,只要花合适的钱能解决问题,选什么产品反倒显得不太重要了,所以这种双赢的营销方式应该是可取的。

其实这样的方式在我自己所在公司也是很常见,我本人都曾多次到电信运营商如移动、电信、联通等做无线微波传输解决方案的交流,也深有体会,作为交流,用户其实并不像听到赤裸裸的设备推广和宣传,他们最关心的是你能为我干什么,你的方案能不能解决我的问题,能解决,再说用什么设备比较合适,这样一切OK。当然,惠普在采用此种营销方案的同时,价格因素也还是不能忽略。

该优化一下这个blog了

Filed under: HTML客户端,网站技术 — 江东 @ 2008-09-26 09:32:31 才(7)条评论

朋友在gtalk提醒我,说我的blog搜索引擎不太友好,需要改善了,并且建议我site:storyday.com看看。果不其然,不看不知道,一看吓一跳,列出来的内容居然全部是本blog的导航内容,看来确实一点都不友好。那么就对症下药吧,既然google显示的全部是导航的内容,那么我把导航的html移动到底部应该就可以了吧,于是开始动刀,将header上的导航代码移动到 footer中,然后在footer中加上一句
$("#menu-ct").html( $("#cos-wp-menu").html() );
这样导航依旧显示在原来的位置,但是html代码确在最后了,希望这样能有点作用 ,马上进入google website管理员工具,把蜘蛛的抓取时间设为最快,看看多久能有效果

祝福多灾多难的四川

Filed under: 生活工作 — 江东 @ 2008-09-26 09:06:11 还没有评论

昨天听到了四川分公司的同事关于设备被雷击的消息,于是在网络上了解了一下四川最近的天气情况,看来四川人民今年真是多灾多难啊。地震之后洪灾来临,还夹杂着凶猛的雷电。

■18小时内成都市遭遇20480次雷电袭击,平均每3秒1次
■成都市路灯共有70多台控制设备受影响
■中国移动约有40余个基站陆续因停电造成网络中断
■近百条电线线路被击断,系十多年之最
■发生雷击的地方,共有3人遭遇不幸

古语说:“天将降大任于斯人也,必先苦其心志……”,希望四川能够尽快恢复,四川人民永远是乐观积极向上的!