网站首页  注册会员  本站免费电影 留言板  繁體中文

 

您现在的位置: 陈鹏个人网站 >> 电脑应用 >> 网络应用 >> 网页制作 >> 正文
 

|
闂傚倸鍊搁崐鐑芥倿閿曗偓椤啴宕归鍛數闂侀€炲苯澧扮紒杈ㄥ浮楠炴捇骞掑┑鍫濇倯闁诲氦顫夊ú妯煎垝閹捐绠圭憸鐗堝俯閺佸啴鏌ㄥ┑鍡樺櫣濠碘剝濞婂缁樻媴閸涘﹥鍎撻梺鍝ュ櫏閸嬪﹤鐣烽幇顖樹汗闁圭儤鍨舵潏鍫ユ椤愩垺澶勯柟椋庢嚀閳藉濮€閳╁啯鐝抽梻浣虹《閸撴繈鎮烽妷鈺佺厱鐎光偓閸曨兘鎷洪梻鍌氱墛缁嬫帡鏁嶉弮鍫熺厵闁告垯鍊栫€氾拷
|
缂傚倸鍊搁崐鐑芥嚄閸洘鎯為幖娣妼閻骞栧ǎ顒€濡肩紒鈧崒娑氱闁瑰鍊戝璺哄嚑閹兼番鍔嶉悡蹇涚叓閸ヮ灒鍫ュ磻閹惧磭鏆﹂柛銉㈡櫇瀹撲線姊婚崒娆戭槮闁汇倕娲ら々濂稿Ω閳哄倸娈戦梺鍓插亝濞叉牠宕归崒鐐寸叆闁绘洖鍊圭€氾拷
|
婵犵數濮烽弫鎼佸磻濞戙垺鍋ら柕濞у懎鏆楅梺绋跨灱閸嬫稓绮堥崘顔界厓闁告繂瀚埀顒佹倐瀹曟粓顢楅崟顑芥嫼闁荤姴娲╃亸娆撳礄閸︻厾纾奸柤纰卞墰鐢稓绱掗弮鍌氭灈鐎规洖銈告俊鐑藉Ψ瑜忓畷鍫曟⒒娴h姤纭堕柛锝忕畵楠炲繘鏁撻敓锟�
|
闂傚倸鍊风粈渚€骞栭位鍥焼瀹ュ懐锛熼梺鍦濠㈡﹢宕归崒娑栦簻闁哄秲鍔岄悞褰掓煛鐎n亪鍙勯柡灞炬礉缁犳稒绻濋崘銊︾彴闂備胶枪椤戝棝骞愰幖浣哥叀濠㈣泛锕﹂弳锕傛煕閵夈垺娅嗘繛鍫熸そ濮婅櫣鎷犻幓鎺濆妷闂佺粯妫忛崜鐔肩嵁韫囨稒鏅搁柨鐕傛嫹
|
缂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸閻ゎ喗銇勯弽顐粶闁搞劌鍊块弻娑㈡晜鐠囨彃绠归梺鎼炲妽缁诲牓寮婚妶鍥╃煓閻犳亽鍔嬬划鐢告⒑缁嬫寧鎹i柛鐘崇墵瀵鏁撻悩鑼槰闂侀潧枪閸庮噣宕戦幘骞夸汗闁圭儤鍨舵潏鍫ユ⒑鐠恒劌娅愰柟鍑ゆ嫹
|
IT闂傚倸鍊搁崐椋庣矆娓氣偓楠炴牠顢曢敃鈧壕褰掓煟閹达絾顥夌痪顓涘亾闂備礁鎲¢崝鏇炍熸繝鍌樷偓鎺撶節濮橆厾鍙嗛梺缁樻礀閸婂湱鈧熬鎷�
|
闂傚倸鍊风粈浣革耿闁秴鍌ㄧ憸鏃堝箖濞差亜惟闁靛鍠楃紞搴㈢節閻㈤潧校闁煎綊绠栧鍛婄瑹閳ь剟寮婚弴銏犻唶婵犲灚鍔栫瑧缂傚倷鑳舵刊顓㈠闯閿濆钃熺€广儱鐗滃銊╂⒑閸涘﹥灏伴柣鐔叉櫊閵嗕礁鈻庨幒鏃傛澑濠电偞鍨堕悷锕€鈻嶉姀銈嗏拺閻犳亽鍔屽▍鎰版煙閸戙倖瀚�
|
闂傚倸鍊搁崐鐑芥倿閿曗偓椤啴宕归鍛數闂侀€炲苯澧扮紒杈ㄥ浮楠炴捇骞掑┑鍫濇倯闁诲氦顫夊ú妯煎垝瀹€鍕仼闁绘垼妫勯悙濠囨煃閸濆嫬鏋︾紒杈皺缁辨捇宕掑顑藉亾閹间焦鍋嬮煫鍥ㄦ⒐閸欏繘鏌i姀鈶跺綊鎯屽Δ鍛叆闁绘洖鍊圭€氾拷
|
闂傚倸鍊峰ù鍥х暦閻㈢ǹ绐楅柟鎵閸嬶繝鏌曟径鍫濆壔婵炴垶菤閺€浠嬫倵閿濆啫濡烽柛瀣崌瀹曟帡鎮欓弻銉ユ暪闂備礁鎼ú銊╁磻閻愮儤鍊垫い鎺嗗亾闁宠鍨块幃娆撳矗婢舵ɑ锛侀梻浣规偠閸斿酣宕伴弽褜鍤曞┑鐘崇閺呮悂鏌ㄩ悤鍌涘
|
   
专 题 栏 目
 濠电姷鏁告慨鐑藉极閹间礁纾绘繛鎴炵懃缁剁偤鏌涢妷顔煎缂佲偓閸喓绡€闂傚牊绋掗敍鏃堟煠閺夎法浠㈤棁澶愭煥濠靛棙鍣洪悹鎰ㄥ墲閵囧嫰鍩¢崘銊ュ箣闂佽鍠涢~澶愬箯閸涙潙浼犻柕澶樺灣缁€濠勭磽閸屾瑧顦︽い锔诲灦閹ê鈹戠€n亞鍙€婵犮垼鍩栭崝鏇犵不婵犳碍鍊垫繛鎴烆仾椤忓棗顥氶柛鎰▕濞撳鏌曢崼婵堢閻庝絻鍋愮槐鎺楊敊閻e本鍣у銈嗘穿缂嶄礁鐣烽幇鐗堝亜闁惧繗顫夊鎴︽⒒娴e憡鎯堟繛灞傚姂瀹曚即骞樼紒妯轰粧闂佽法鍣﹂幏锟�
相 关 文 章

在PPT中插入其他幻灯片的
网上搜索资料的14条技巧
在QQ空间放土豆网Flash视
你可能不知道的Photosho
Foxmail 6 防范黑客攻击
PPStream定时操作技巧三
超级兔子魔法设置使用技
十二则Windows优化大师使
Maxthon傲游实用技巧七则
浏览和下载并举 Maxthon

 
技巧:网站整体优化之数据库优化           
技巧:网站整体优化之数据库优化
作者:陈鹏 文章来源:eNet 点击数:120 更新时间:2009-9-12 9:13:50
 




 

目前web2.0的程序,很大瓶颈是数据库的吞度量。不过,如何才能确定系统的瓶颈是数据库呢,因为只有确定数据库是整个系统的瓶颈,我们才有必要去优化他,毕竟,还有这么多需求等待我们去做。

  如何确定数据库是瓶颈?

  1 如果程序设计良好,有一个数据库操作逻辑层,可以从这个层的统计数据看到每个请求花费的时间,如果平均时间已经不能让你容忍的话,数据库已经是瓶颈了。

  2 在数据库的服务器上使用top命令,看看mysql服务器占用资源的情况,看看机子的平均负载。

  如果服务器的平均负载已经很高,mysql占用了块100%的cpu资源,说明mysql服务器很忙了。

  3 在数据库服务器上使用iostat命令,看看磁盘IO,如果block住的操作比较多的话,说明数据库操作还是过于频繁了,磁盘都响应不急了。

  4 建议打开mysql的慢查询日志,这样grep select看一下日志中的慢查询的数量,如果数量较多,说明慢查询的数量很多,需要进行调整了。

  5 如果有一天数据库无法插入了,需要检查一下数据库表是不是过大了。32位的操作系统上一个表最大的容量是2^32这么大。不过还是建议增加一个数据库操作的逻辑层,在数据库操作的前后记录下操作的时间,进行统计上报,利用监控程序来报警相关负责人,这样可以及早的知道数据库是瓶颈,提前做出优化。

  知道数据库是瓶颈了,如何来进行优化呢?

  1 我们第一个想到是看看数据库的容量是不是太大了,如果数据库表太大的话,索引文件也会比较大,每次的更新操作就会更加的费时。需要考虑进行分库和分表了。

  分库分表按照一定的规则来对数据库中的记录进行分区来存储,一方面可以做到一定的负载均衡,将请求平分下来,每个区段去独自承受;另一方面,分库分表可以使我们存储和操作更多的数据。

  不过分库分表需要多之前基于单库的程序进行修改,存在一定的风险,因此,在程序设计之初就应该考虑到分库分表的需要,最好是将数据库操作层独立出来,便于扩展和更改。

  2 如果数据库表不是很大,但是查询慢的话,我们需要检查一下我们的sql查询语句,利用mysql的explain语句看看是不是使用了索引,如果没有使用索引,那我们需要在相应的字段上建上索引,反复的使用explain,寻找到个一个合适的索引。

  在建索引时需要考虑:

  1)数据库的索引要做到越少越好。

  因为每次更新都需要更新索引,索引过多就会降低写入的速度。

  2)最窄的字段放在键的左边。

  这样提高了索引中每一个点的基数,带来更好的索引读写性能。

  3)尽量避免file sort排序、临时表和表扫描。

  对于大表,全表扫描会导致大量的磁盘IO的操作,会导致操作非常的缓慢。

  4)对于大表,尽量不要将索引建在字符串类型的列上,字符串的匹配是很费时的,需要付出很高的性能代价,如果一定有必要,建议对字符串列进行hash后取一个整形的值来进行索引。

  3 如果更新操作有点慢,而读操作的响应要求不需要很及时的话,可以考虑利用mysql的主从热备来分担读写的压力。

  毕竟对数据库的操作,写少读多。因此,我们将对数据库的写操作放到mysql的主服务器上,利用mysql的热备,我们在备份的数据库服务器上进行读操作,由于可以有多个热备mysql,于是可以将读操作分布在多个热备上面,从而将读操作均衡开来,提高读操作的性能。

  4 缓存的使用

  缓存是一切后台程序的根本,因为80%的请求是对应20%的数据,我们只需要少量的内存将20%的数据缓存起来,就可以大大的满足我们系统需求,何乐而不为呢。

  1)mysql设置中尽量增加key cache,thread cache、查询的cache。

  2)在应用程序层增加一个memcached这样的通用cache。

  3)对于少量数据,但是操作频繁的表使用mysql提供的内存heap表,可以获得极高的写入和读取速度。

  5 数据库的设计上进行优化

  对于传统的数据库设计我们讲究建模范式,避免数据的冗余从而导致脏数据。然而在我们实际的应用中需要根据情况来使用第三范式的一些规则,对于一些频繁需要在多个地方出现的数据,如同一个论坛这种用户和主题以及回复等有关联的应用中,如果我们将用户同主题和回复分开来存储,每次查询一下一篇文章或者一个回复的情况都需要对用户表和主题表或者回复表进行联查,如果数据量小的话,这样联查的性能还是可以接受的,如果表大一点,上了3、4十万以上的数据,联查的速度就会比较慢了。

  该范式化的地方需要进行范式化,但是还是需要根据情况来设计我们的表,从而达到性能和良好设计的折中。

  其它的话:

  1 对于数据库的操作建议分层处理,至少分为两层,一层是数据库操作的逻辑层,一层是数据库的cache层。

  从一开始就考虑如此,可以很方便在未来对数据库进行划分部署、分库分表扩展。

  2 增加mysql的监控,监控mysql的慢查询日志,监控mysql的请求情况。

  3 根据自己的需要来选择mysql的存储引擎。

  myisam有较高的读写速度,但是由于表锁定,不能同时进行快速的读和写。

  innodb支持事务,提供了行级的锁,但是为了使用事务,表空间会比较大,而且不支持全文索引。

  heap将表放到内存中,适合与表小而需要频繁操作的情况,如用户信息,其读写很快,但是不是持久的,需要自己来写工具让其持久。

  4 mysql服务器的一些状态检测的命令。

  show slave status:可以看到主从同步的情况。

  show [full] processlist:可以看到mysql服务器的请求情况,如果发现lock情况很多,需要注意了。

  show status:可以看到mysql服务器的各种请求情况。

文章录入:陈鹏    责任编辑:陈鹏 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     
     
     
     
     

    Copyright © 2007 - 2009 chenpeng123.com All Rights Reserved
    本站所有文章,软件等均来自网络收集,不代表本站观点,仅供学习和研究使用。如有侵犯您的版权,请联系我们,本站将立即删除。
    鲁ICP备07014697号
    你是本站第 位访客
    51La