Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
PostgresÊý¾Ý¿â»º´æµÄÉî¶ÈÖ¸ÄÏ
 
À´Ô´£º¼«¿ÍÍ·Ìõ ×÷Õߣº Madusudanan.B.N ·¢²¼ÓÚ 2016-7-27
  3615  次浏览      28
 

»º´æ

»º´æ¶ÔÓÚÊý¾Ý¿âµÄϵͳÐÔÄÜÓÐ×ÅÖØÒªÒâÒå¡£

±¾ÎÄËäÒÔPostgresΪÀý£¬µ«Ò²¿É¶ÔÓ¦µ½ÆäËûÊý¾Ý¿âϵͳ¡£

Ò»¡¢¸ßËÙ»º³å´æ´¢Æ÷ÊÇʲôÒÔ¼°ÎªÊ²Ã´ÐèÒªËü

²»Í¬µÄ¼ÆËã»ú²¿¼þÓÐ×Ų»Í¬µÄÔËÐÐËÙ¶È¡£ÈËÀàÔÚÀí½âÊý×ֵĹæÄ£ÉÏÃæ£¬Óë¼ÆËã»úÓÐ׿«´óµÄ²î¾à¡£

¶Ô´Ë£¬Í¨¹ýÏÂÃæÕâÕűí¸ñ£¨½ØÈ¡×Ô¡¶ÎÄ×Ö¼äµÄÎÞÏ޿ռ䡷The Infinite Space Between Words£©£¬»áÓÐÒ»¸ö¸üÖ±¹ÛµÄÈÏʶ¡£

±íÖÐÊý¾ÝÊÇ´ÓÈËÀà½Ç¶È¼ÓÒÔ¹ÀËã¡£

ÔÚÊý¾Ý¿âϵͳÖУ¬¼¼ÊõÈËÔ±×î¹Ø×¢µÄÍùÍùÊÇÓ²Å̵ÄI/OÎÊÌâ¡£

ÓëеĹÌ̬ӲÅÌ£¨SSD£©Ïà±È£¬´ÅÅÌÔÚËæ»úI/O·½ÃæµÄÐÔÄܽϲ

´ó¶àÊýOLTPµÄ¹¤×÷¸ºÔض¼ÊôÓÚËæ»úI/O£¬Òò´Ë»ñȡӲÅÌÖÐÐÅϢʱ£¬ËٶȾͻἫÆä»ºÂý¡£

ΪÁ˿˷þÕâÒ»ÁÓÊÆ£¬PostgresÀûÓÃËæ»ú´æÈ¡´æ´¢Æ÷£¨RAM£©À´»º´æÊý¾Ý£¬¶øÕ⼫´óµØÌá¸ßÁËÐÔÄÜ¡£¼´Ê¹¶Ô±ÈSSD£¬RAMËÙ¶ÈÉÏÒ²Òª¿ìÉϺܶࡣ

ÉÏÃæÊÇ»º´æ´¦ÀíÆ÷£¨cache£©µÄÆÕÊÊÔ­Ôò£¬¼¸ºõÊÊÓÃÓÚËùÓеÄÊý¾Ý¿âϵͳ¡£

¶þ¡¢Àí½âÊõÓï

ÔÚ½øÒ»²½ÍØÕ¹ÖªÊ¶Ö®Ç°£¬ÏÈÁ˽âÒ»Ð©ÌØ¶¨ÊõÓï¡£

Ê×ÏÈ£¬¿É½èÖúһƪÓÅÐãµÄÎÄÕÂÕ¹¿ªÔĶÁ¡£

ÿµ±Äã¶ÁÍêһƪµÄʱºò£¬¾Í½Ó×Å»»Ò»ÆªÄѶȸüÉîÒ»µãµÄÎÄÕ¼ÌÐø¡£Õâ¸ö¹ý³ÌÖУ¬ÒªÌرðÁôÒâÓйضÑÄÚ´æÔª×éµÄ²¿·Ö¡£

ÁíÍ⣬»¹¿ÉÒÔ¿´Ïà¹ØµÄ¹Ù·½Îĵµ£¬µ«ÕâÀàÏà¶ÔÄÑÀí½âЩ¡£

²»¹ÜÄÚÈÝÊÇʲô£¬Postgres¶¼ÓÐÒ»¸ö³éÏ󻯴洢£¬¼´¼ÆËã»ú±à³ÌÓïÑԽű¾£¨page£¬8kb£©¡£

Ï·ùͼ¸ø³öÁËÒ»¸ö¼òÒª½éÉÜ¡£

ÕâÒ»³éÏó¸ÅÄîÊÇÏÂÎÄÀï½«ÒªÖØµã½â¾öµÄÎÊÌâ¡£

Èý¡¢»º´æµÄ¶ÔÏó

Postgre»º´æµÄÄÚÈÝÈçÏ£º

±í¸ñÊý¾Ý

Ö¸±í¸ñµÄ¾ßÌåÄÚÈÝ¡£

Ë÷Òý

Ë÷ÒýÒà´æ´¢ÖÁ8k´óСµÄ¿é£¬¼´ºÍ±í¸ñÊý¾Ý´æ´¢Î»ÖÃÒ»Ö£¬½Ó×Å¿´ÏÂÃæµÄ´æ´¢ÇøÓò¡£

²éѯִÐмƻ®

¿´Ò»Ìõ²éѯִÐмƻ®Ê±£¬ÓÐÒ»¸ö¼Æ»®½×¶Î£¬Ö÷ÒªÓÃÀ´ÌôÑ¡×îÊÊÓÃÓÚ²éѯµÄ¼Æ»®¡£Postgres»¹¿ÉÒÔ´¢´æÕâ¸ö¼Æ»®£¬¶øÕâ»ùÓÚµÄÊÇÿһ´Î»á»°£¬¶øÒ»µ©»á»°½áÊø£¬´æ´¢µÄ¼Æ»®¾Í»á±»É¾³ý¡£Õâµ¼ÖÂÆäÓÅ»¯¡¢·ÖÎö±äµÃ¼¬ÊÖÁËÆðÀ´£¬µ«´Ó×ÜÌåÉÏÀ´¿´ÕâÒ»µã²»ÊÇÄÇÃ´ÖØÒª£¬³ý·Ç´¦ÓÚÖ´ÐÐÖеIJéѯ·Ç³£¸´ÔÓ£¬²¢ÇÒ/°üº¬´óÁ¿Öظ´²éѯ¡£

Îĵµ´Óϸ½Ú×ÅÊÖ¶ÔÕâЩÄÚÈÝ×ö³öÁ˺ܺõĽâÊÍ¡£ÎÒÃÇ¿ÉÒÔͨ¹ý²éѯpg_prepared_statementsÀ´ÕÒ³ö»º´æÁËÄÄЩ¶«Î÷¡£ÕâÀïҪעÒâµÄÊÇ£¬ÔÚ½áÊøµÄ»á»°¼äÎÞ·¨»ñÈ¡»º´æ£¬ÓÐÇÒ½ö¶ÔÕýÔÚ½øÐеĻỰ¿É¼û¡£

ÏÂÎĽ«½øÒ»²½Ñо¿±í¸ñÊý¾ÝºÍË÷Òý»º´æµÄϸ½ÚÎÊÌâ¡£

ËÄ¡¢ÄÚ´æÇø

Postgres¾ßÓжà¸öÅäÖòÎÊý£¬ÔòÐèÒªÀí½â²ÎÊýÖ¸´úµÄº¬Òå¡£

¶ÔÓÚ»º´æÀ´Ëµ£¬×îÖØÒªµÄÅäÖõ±Êôshared_buffers¡£ÕâÔÚPostgresÔ´´úÂëÄÚ²¿£¬ÓÖ³ÆÎªNBuffers£¬ÓÃÒÔ´æ´¢¹²ÏíÊý¾ÝÖÁÄÚ´æ¡£

Shared_buffersÒ²½ö½öÊÇÓÉ8kb´óСµÄ¿éËùÐγɵÄÊý×顣ÿ¸ö½Å±¾ÄÚ²¿¶¼°üº¬ÔªÊý¾Ý£¬ÈçǰËùÑÔ£¬ÔÚ´Ë´¦Æðµ½Çø·ÖµÄ×÷Óá£ProgresÔڲ鿴ӲÅÌÊý¾Ý֮ǰ£¬»áÏȲéÕÒshared_buffersÄڵĽű¾£¬Èô´Ë´¦ÓÐhit²ÎÓ룬ÔòÆä½«ÔÚÕâÒ»»·½Ú·µ»ØÊý¾Ý£¬´Ó¶ø±ÜÃâÓ²Å̵ÄI/OÎÊÌâ¡£

Îå¡¢LRU/ClockÇåÀí»º´æËã·¨

¹ØÓÚ´æ´¢Æ÷ÄÚÊý¾ÝµÄ»º´æºÍÇåÀíµÄ×°Öã¬ÊÜ¿ØÖÆÓÚClockÇåÀí»º´æËã·¨¡£

ÒòÆä±»ÓÃÒÔ´¦ÀíOLTP¹¤×÷¸ºÔØ£¬¹Ê¶ø¼¸ºõËùÓеÄÐÅÏ¢´«Êä¶¼ÊÇÔÚÄÚ´æÏ½øÐеġ£
ÏÂÃæ´Óϸ½Ú´¦Ì¸Ò»Ì¸Ã¿Ò»Ïî²Ù×÷¡£

»º³åÇø·ÖÅä

PostgresÊÇÒ»¸ö»ùÓÚ¹ý³ÌµÄϵͳ£¬»»ÑÔÖ®£¬Ã¿Ò»´ÎÁ¬½Ó×ÔÉí¶¼º¬ÓÐÒ»¸ö±¾µØ²Ù×÷ϵͳ½ø³Ì£¬ÕâÔ´ÓÚPostgresµÄroot½ø³Ì£¨Ô­³Æpostmaster£©¡£

ÈôÒ»¸ö½ø³ÌÒªÇóÒ»¸öLRU¸ßËÙ»º³å´æ´¢Æ÷ϵĽű¾£¨Ò»µ©¸Ã½Å±¾¾­¹ýÒ»¸ö¾­µäµÄSQL²éѯ¶ø»ñµÃ£¬Ôò½ø³Ì½áÊø£©£¬ËüÒªÇóÔÚ»º³åÇø·ÖÅä¡£ÈôblockÒÑ´æÓÚ¸ßËÙ»º³å´æ´¢Æ÷£¬ÔòÆä½«±»Ëø¶¨²¢·µ»Ø¡£¶øÕâ¸öËø¶¨¹ý³ÌÒ²½«ÌáÉýÏÂÃæ½«ÒªÌÖÂÛµ½µÄʹÓüÆÊý¡£¶øÈç¹ûʹÓüÆÊýÏÔʾΪ0£¬Ôò½Å±¾½«±»½â³ýËø¶¨¡£

Ö»Óе±ËùÓлº³åÇø»òslots¶¼°üº¬Ò»¸ö½Å±¾Ö®ºó£¬²Å»á½øÐе½»º´æÇøÇåÀí»·½Ú¡£

»º´æÇøÇåÀí

¼ÆËã»úѧ¿ÆÑ§µÄÒ»¸ö¾­µäÎÊÌâ¾ÍÊÇÈ·¶¨ÄÄЩ½Å±¾Ó¦µ±´ÓÄÚ´æÖÐɾ³ý£¬²¢Ð´ÈëÓ²ÅÌ¡£

ÓÉÓÚ¶Ô֮ǰµÄÔËÐÐûÓмǼ£¬¼òµ¥Ò»¸öLRU£¨Least Recently Used£¬×î½ü²»³£Ê¹ÓÃËã·¨£©ÔÚʵ¼ÊÖкÜÄѺܺõع¤×÷¡£

¶øPostgres±£´æÁ˽ű¾Ê¹ÓüÆÊýµÄÔËÐй켣£¬Òò´ËÈç¹ûÒ»¸ö½Å±¾µÄʹÓüÆÊýÊÇ0£¬ÔòÆä½«´ÓÄÚ´æÖб»É¾³ý²¢Ð´ÈëÓ²ÅÌ¡£´ËÍ⣬ÔÚÓöµ½ÔàÒ³µÄÇé¿öÏ£¬Ò²½«±»Ð´ÈëÓ²ÅÌ£¨ÏêÇé¼ûÏÂÎÄ£©¡£

ÔÝÇÒÅ×ϾßÌåϸ½Ú²»¿´µÄ»°£¬»º´æËã·¨±¾Éí¼¸ºõ²»ÐèÒªµ÷Õû£¬¶øÇÒÆäÖÇÄ̶ܳÈÔ¶³¬ÓÚÈ˵ÄÏëÏó¡£

Áù¡¢ÔàÒ³ºÍ¸ßËÙ»º³å´æ´¢Æ÷ʧЧ

Ò»Ö±µ½ÕâÀïÎÒÃǶ¼ÔÚÌÖÂÛÑ¡Ôñ²éѯµÄÎÊÌ⣬ÄÇDML²éÑ¯ÄØ£¿¼òµ¥À´Ëµ£¬¶þÕßдÈëÏàͬµÄ½Å±¾¡£ÈôΪÄڴ棬ÔòÖ±½ÓдÈ룬·ñÔòÏÈ´ÓÄÚ´æÖÐÌáÈ¡³öÀ´ÔÙдÈë¡£

Õâ¾ÍÊDzúÉú¡°ÔàÒ³¡±Õâ¸ö¸ÅÄîµÄ»·½Ú£¬Ò²¾ÍÊÇ˵£¬Ò»¸ö½Å±¾Òѱ»Ð޸Ļ¹Î´Ð´ÈëÓ²Å̵ÄÇé¿ö¡£
ÔÚÎÒÃǼÌÐøÖ®Ç°£¬»¹ÓÐÐí¶à¹¦¿ÎºÍÑо¿Òª×ö£¬ÕâÀïÌØ±ðÇ¿µ÷¹ØÓÚWALÈÕÖ¾ºÍÄÚ²¿Ê¼þ£¨checkpoints£©¡£

WALÊÇÒ»¸öÖØ×öÈÕÖ¾£¬Ö÷ÒªÓÃÒÔ±£´æÏµÍ³ÄÚ²¿·¢ÉúÒ»ÇеĹ켣¡£ÕâÊÇͨ¹ý½«ËùÓеı仯·Ö±ð¼ÈëÒ»¸öWALÈÕÖ¾À´ÊµÏÖ¡£Checkpointer¾ÍÊÇÒ»¸öÔÚÒ»¸ötime settingµÄ¿ØÖÆÏ£¬¶¨Ê±½«ËùνµÄÔàҳдÈë´ÅÅ̵Ľø³Ì¡£Ö®ËùÒÔÈç´Ë²Ù×÷£¬ÊÇÒòΪ¿¼Âǵ½Êý¾Ý¿â±ÀÀ£Ê±´ÓÍ·¿ªÊ¼Öظ´ËùÓвÙ×÷µÄÐèÒª¡£

ÕâÊÇ´ÓÄÚ´æÖÐɾ³ý½Å±¾×î³£¼ûµÄ·½·¨£¬¶øÔÚ¾­µä°¸ÀýÖÐLRUËã·¨ÇåÀí¼¸ºõûÓгöÏÖ¹ý¡£

Æß¡¢Àí½â¸ßËÙ»º³å´æ´¢Æ÷£¨cache£©

ExplainÊÇÀí½â¼ÆËã»úÄÚ²¿ÕýÔÚ½øÐÐдʲôµÄºÃ·½·¨¡£Õâ¸ö·½·¨ÉõÖÁÄܹ»¸æËßÄãÓжàÉÙÊý¾Ý¿éÊÇÀ´×Ô´ÅÅ̵ģ¬ÓÖÓжàÉÙÊÇÀ´×Ôshared_buffers£¬¼´ÄÚ´æµÄ¡£

ÀýÈçÏÂÃæÕâ¸ö²éѯ¼Æ»®£º

¹²Ïí¶ÁȡָµÄÊÇÆäÈ¡×Ô´ÅÅÌÇÒ²»±»»º´æ¡£Èô¸Ã²éѯÔÙ´ÎÔËÐУ¬ÇÒ»º´æÅäÖÃÕýÈ·µÄ»°£¨ÎÒÃǽ«ÔÚÏÂÃæÌÖÂÛ£©£¬Æä½«ÒÔ¹²ÏíhitµÄÐÎʽ³ÊÏÖ¡£

ͨ¹ýÕâ¸ö·½·¨£¬ºÜÈÝÒ×´Ó²éѯµÄ½Ç¶ÈÀ´»ñÖª»º´æµÄÁ¿£¬¶øÎÞÐèͨ¹ýOS/PostgresµÄInternalsÀ´Íê³É¡£

°Ë¡¢È«ÃæÉ¨Ãè°¸Àý

È«ÃæÉ¨Ã裬ÔÚûÓÐË÷ÒýÇÒPostgres±ØÐë´Ó´ÅÅÌÖÐÌáÈ¡ËùÓÐÊý¾ÝµÄÇé¿öÏ£¬¶ÔÓÚÕâÀà¸ßËÙ»º³å´æ´¢Æ÷À´Ëµ¹éÊôÎÊÌâÇøÓò¡£

ÓÉÓÚµ¥´ÎɨÃèÄÜÇå³þ´æ´¢Æ÷ÄÚµÄËùÓÐÊý¾Ý£¬¹Ê¶øÆä²Ù×÷·½·¨ÓÐËù²»Í¬¡£ËüÑ¡ÓÃÒ»×é¹²¼Æ256K.B´óСµÄ»º³åÇø£¬¶ø·Ç³£¹æµÄLRU/ClockÇåÀí»º´æËã·¨¡£ÏÂÃæµÄ²éѯչʾÁËËüµÄ²Ù×÷·½·¨¡£

ÔÙ´ÎÖ´ÐÐÉÏÊö²éѯ¡£

´ÓÖÐÎÒÃÇ¿ÉÒÔÇå³þµØ¿´µ½32¸ö¿éÇå³þµØ×ªÈëÁËÄڴ棬¼´32*8= 256 KB¡£ÕâÔÚsrc¡¢backend¡¢storage¡¢bufferºÍREADMEÖж¼ÓÐËù˵Ã÷/½âÊÍ/ÌåÏÖ¡£

¾Å¡¢ÄÚ´æÁ÷ºÍOS»º´æ

PostgresÊÇÒ»¸ö¿çƽ̨Êý¾Ý¿â£¬Æä»º´æºÜ´ó³Ì¶ÈÉÏÒÀÀµÓÚ²Ù×÷ϵͳ¡£

ʵ¼ÊÉÏshared_buffersÊÇÔÚ¸´ÖÆOSµÄ²Ù×÷¡£ÏÂÃæ¸ø³öÒ»ÕŵäÐ͵ÄÊý¾ÝÔÚPostgresÄÚ²¿µÄÁ÷Ïòͼ¡£

Æð³õµÄÈ·ÁîÈËÀ§»ó£¬ÓÉÓÚ»º´æÊÇÓÉOSºÍPostgres¶þÕßͬʱ¹ÜÀíµÄ£¬µ«ÕâÑù²Ù×÷Ò²ÊÇÓÐÔ­ÒòµÄ¡£

̸¼°²Ù×÷ϵͳ£¬¸ßËÙ»º³å´æ´¢Æ÷ÔòÐèÒªÒ»¸ö¶ÀÁ¢µÄpost£¬ÍøÉÏÒ²Óкܶà¿É¹©ÀûÓõÄ×ÊÔ´¡£

Òª¼ÇסOS»º´æÊý¾ÝÊÇ´¦ÓÚºÍÉÏÃæÌáµ½µÄÒ»ÑùµÄÔ­Òò£¬¼´ÎªÊ²Ã´ÎÒÃÇÐèÒªÒ»¸ö¸ßËÙ»º³å´æ´¢Æ÷ÄÇÒ»²¿·ÖÄÚÈÝ¡£

ÎÒÃÇ¿ÉÒÔ°ÑI/O·ÖΪÁ½À࣬¼´¶ÁºÍд¡£¼òÑÔÖ®£¬Êý¾Ý´Ó´ÅÅÌÁ÷ÈëÄÚ´æ½Ð×ö¶Á£»Êý¾ÝÓÉÄÚ´æÁ÷Èë´ÅÅ̳ÆÎªÐ´¡£

¶Á

²Î¿¼ÉÏÃæµÄÁ÷³Ìͼ£¬¿ÉÒÔ·¢ÏÖдָµÄÊÇÊý¾Ý´Ó´ÅÅ̵½OS´æ´¢Æ÷ÔÙµ½shared_buffersµÄ×ªÒÆ¹ý³Ì¡£

ÓÐʱ£¬OS´æ´¢Æ÷ºÍshared_buffers¿ÉÒÔ¿ØÖÆÏàͬµÄ½Å±¾£¬¶øÕâ¿ÉÄܵ¼Ö¿ռäÀË·Ñ£¬µ«ÕâÀïÒª¼Çס£¬OS´æ´¢Æ÷ËùÓõÄÊǼòµ¥µÄLRUËã·¨¶ø·ÇÊý¾Ý¿âÓÅ»¯µÄclock sweep¡£Ò»µ©½Å±¾Ò³µÄ¹²Ïí»º³å¹¦ÄܼõÈõ£¬OS´æ´¢Æ÷ÄÚÔòÎÞ·¨¶ÁÈ¡£¬ÇÒÈôÓб¸·Ý£¬Ò²ºÜÈÝÒ×±»É¾³ý¡£

ÔÚʵ¼ÊÇé¿öÏ£¬²¢²»´æÔÚÌ«¶à±»Í¬Ê±´¢´æÓÚ¸÷ÄÚ´æÇøÓòµÄ½Å±¾Ò³¡£ÕâÒ²Êǽ¨Òé×Ðϸ¹æ»®shared_buffers´óСµÄÔ­ÒòÖ®Ò»¡£¹ý·ÖÓ²ÐԵĹ涨½«ÓÐËðÆäÐÔÄÜ£¬ÀýÈçÈÃÆä³ÐÔØ×î´ó·Ý¶îµÄÄÚ´æ»òÊǸøÆä·ÖÅäµÄ¹ýÉÙ¡£

Õë¶ÔÆäÓÅ»¯ÎÊÌ⣬ÏÂÎĽ«Ïê½â¡£

д

дÊÇÓÉÄÚ´æµ½´ÅÅ̵ÄÊý¾Ý×ªÒÆ¡£Õâ¸ö»·½ÚÕýÊÇÔàÒ³²úÉúÖ®´¦¡£Ò»¸ö½Å±¾Ò»µ©±»±ê¼ÇΪÔàÒ³£¬Ôò½«±»´«ÊäÖÁOS´æ´¢Æ÷£¬ËæºóÔò±»Ð´Èë´ÅÅÌ¡£ÔÚÕâ¸ö»·½Ú£¬OSÔÚÊäÈëͨÐÅÁ¿µÄ»ù´¡ÉÏÏíÓиü´óµÄµ÷¶ÈÊäÈëÊä³öµÄ×ÔÓÉ¡£

ÈçÉÏÎÄËù˵£¬ÈôOS´æ´¢Æ÷ÈÝÁ¿½ÏС£¬ÔòÆä²»ÄܶÔдÈë½øÐÐÖØÐÂÅÅÐò£¬Ò²²»ÄܶÔÊäÈëÊä³ö½øÐÐÓÅ»¯¡£¶øÕâ¶ÔÓڸ߹¤×÷¸ºÔصÄдÀ´ËµÊǷdz£ÖØÒªµÄ¡£Òò´Ë£¬OS´æ´¢Æ÷µÄ´óСҲºÜÖØÒª¡£

Ê®¡¢³õʼÅäÖÃ

¶ÔÓںܶàÊý¾Ý¿âϵͳÀ´Ëµ£¬²¢²»´æÔÚÖ±½ÓÊÊÓõÄÍòÄÜÅäÖá£ÅäÓлù´¡ÅäÖõÄPostgreSQL ships¾­¹ýÓÅ»¯ÔöÇ¿ÁËÆä¼æÈÝÐÔ¶ø·ÇÐÔÄÜ¡£

ÒÀ¾ÝÓ¦ÓóÌÐò¡¢¹¤×÷¸ºÔØÀ´ÓÅ»¯ÅäÖã¬ÊÇÊý¾Ý¿â¹ÜÀíÔ±¡¢¿ª·¢ÕßµÄÔðÈΡ£È»¶øPostgresÓÐÒ»¸öºÜºÃµÄÎĵµÓÃÒÔָʾ´ÓºÎ´¦¿ªÊ¼¡£

Ò»µ©È·Á¢ÁËĬÈÏ¡¢Æô¶¯ÅäÖ㬼´¿Éͨ¹ý¸ºÔØ¡¢ÐÔÄܲâÊԲ鿴Æä²Ù×÷Çé¿ö¡£

Òª¼Çס¶Ô³õʼÅäÖõĵ÷ÕûÊÇΪÁ˸üºÃµÄ»ñÈ¡¶ø²»ÊÇÐÔÄܵÄÌá¸ß¡£Í¨³£Çé¿öÏ£¬×îºÃÄܼì²â²¢Ñ¡Ôñ¸üÊÊÒËÆä¹¤×÷¸ºÔصÄÅäÖá£

ʮһ¡¢ËæÊ±ÓÅ»¯

¶ÔÓÚ²»¿É¼ì²âµÄ¶«Î÷£¬×ÔȻҲÎÞ·¨ÓÅ»¯¡£

ÓÐÁËpostgres£¬¾ÍÓÐÁËÁ½Öֿɹ©¼ì²âµÄ·½·¨¡£

²Ù×÷ϵͳ

¶ÔÓÚÔÚÄĸöƽ̨ÉÏPostgres¿ÉÒÔ×îºÃµØ¹¤×÷Õâ¸öÎÊÌâµÄ´ð°¸£¬²¢Î´µÃµ½ÆÕ±éµÄ¹²Ê¶£¬ËùÒÔ´Ë´¦¼ÙÉèÊÊÓõÄÊÇLinux¼ÒÍ¥°æ²Ù×÷ϵͳ¡£µ«Õâ¸öÏë·¨ÀàËÆ¡£

Ê×ÏÈ£¬ÓÐÒ»¸ö½Ð×öIo topµÄ¹¤¾ß£¬¿ÉÒÔÓÃËüÀ´¼ì²â´ÅÅ̵ÄÊäÈëÊä³ö¡£ºÍtopÏàËÆµÄÊÇ£¬ËüÔÚ¼ì²â´ÅÅÌÊäÈëÊä³öʱ³ÙÔç»áÅÉÉÏÓó¡¡£ÕâÊÇÖ»ÐèÒªÔËÐÐiotopÖ¸ÁîÀ´¼ì²â¶ÁÈ¡¡¢Ð´Èë¡£

ÉÏͼÇå³þµØÕ¹Ê¾ÁËÔÚ¸ºÔØÏÂPostgresÊÇÈçºÎÔËÐе쬼´ÄÄЩÊÇÕë¶Ô´ÅÅ̵ģ¬ÓÖÓÐÄÄЩÊÇÀ´×ÔRAMµÄ£¬ÕâЩÊý¾Ý¿Éͨ¹ý²úÉúµÄ¸ºÔØÀ´»ñÈ¡¡£

Ö±½ÓÀ´×ÔPostgres

ͨ³£Çé¿öÏ£¬×îºÃ¼à²âÖ±½ÓÀ´Ô´ÓÚPostgresµÄÊý¾Ý£¬¶ø²»ÊǾ­ÀúÁËOS·¾¶´«ÊäµÄÊý¾Ý¡£

´ËÍ⣬ͨ³£Ö»ÓÐÔÚÈ·ÈÏPostgres±¾Éí´æÔÚ´íÎóµÄÌõ¼þÏ£¬²Å»áÖ´ÐÐOS²ãÃæµÄ¼à²â£¬µ«ÕâÖÖÇé¿öÒ»°ã²»³£¼û¡£

°éËæPostgres£¬ÓÐһЩ¿É¹©Ö§ÅäµÄ¹¤¾ß£¬¿ÉÒÔÓÃÀ´¼ì²âÄÚ´æµÄÐÔÄÜ¡£

Explain

ĬÈÏÊÇSQL explain¡£ËüÄܸø³ö±ÈÆäËüÊý¾Ý¿âϵͳҪ¸ü¶àµÄÐÅÏ¢£¬µ«ÔÚÀí½âÉϵÄÄѶÈÒ²ÒªÏà¶Ô¸ßһЩ¡£¹Ê¶øÐèҪͨ¹ýÁ·Ï°À´¼ÓÒÔÊìϤ¡£²»Òª´í¹ýÄǼ¸¸öÓÐÓõÄflags£¬ÒòΪÈçǰËù¼û£¬ËûÃǽ«±»Ìر𻺴档

½øÈëÏÂÃæµÄÁ´½ÓÀ´ÉîÈëÁ˽âexplainµÄÏà¹ØÄÚÈÝ£º

¸ü¶àexplainÏêÇé¹Ø×¢ÍøÕ¾ postgresguide.com
Explain visualizer

²éѯÈÕÖ¾

²éѯÈÕÖ¾ÊÇÓÃÒÔÁ˽âϵͳÄÚ²¿Ëù·¢ÉúµÄʼþµÄÁíһ;¾¶¡£

ÎÒÃÇÎÞÐèÊÂÎÞ¾ÞϸµØÈ«²¿¼Ç¼£¬Ö»ÐèÒª¼ÇÂ¼ÌØ¶¨Ê±¼ä¼ä¸ô¼äµÄ²éѯ£¬»òÕßÔËÓÃlog_min_duration_statement²ÎÊýÒÔ²ÉÓÃÂýËÙ²éѯÈÕÖ¾¡£

×Ô¶¯explain

ÕâÒ²¿ÉÒÔ°ïÖúÄãÀûÓÃÂýËÙ²éѯ×Ô¶¯¼Ç¼ִÐмƻ®¡£ËüÄܹ»ÈÃÄãÔÚÎÞÐèÊÖ¶¯ÔËÐÐexplainµÄÇé¿öϽøÐе÷ÊÔ¡£

Pgͳ¼Æ±¨±í

ÉÏÃæÌáµ½µÄ·½°¸¶¼ºÜºÃ£¬µ«ÊÇȱ·¦¹®¹ÌµÄÀíÄî¡£

ÕâÊÇPostgresÄÚ²¿½¨Á¢µÄÄ£¿é£¬µ«ÊÇÔÚĬÈÏÇé¿öÏ»á²úÉúȱÏÝ¡£

¿ÉÒÔͨ¹ý´´Ôìextension pg_stat_statementsÀ´Ê¹Ö®¹¤×÷¡£

Ò»µ©Æä¿ªÊ¼ÔËÐУ¬¾­¹ýÒ»¶¨Á¿µÄ²éѯ֮ºó£¬¼´¿ÉÒÔÕ¹¿ªÈçϲéѯ¡£

¸ø³ö´óÁ¿²éѯËùÏûºÄµÄʱ³¤¼°Æäƽ¾ùÖµµÄϸ½ÚÐÅÏ¢¡£

Õâ¸ö·½·¨µÄȱÏÝÔÚÓÚËüÏûºÄÁ˲¿·ÖÐÔÄÜ£¬¹Ê¶øÔÚÉú²úϵͳÖв»³£ÍƼöÕâ¸ö·½·¨¡£

PG Buffer´æ´¢Æ÷ºÍPG fincore

Èç¹ûÏëÒª»ñµÃ¸üÉîÈëµÄÁ˽⣬»¹ÓÐÁ½¸ö¿ÉÒÔÖ±½ÓÉîÈëshared_buffersºÍOS ´æ´¢Æ÷ÄÚ²¿µÄÄ£¿é¡£

ÖµµÃ×¢ÒâµÄÊÇ£¬explain£¨analyze£¬buffers£©Ö»ÏÔʾ³ö×Ôshared_buffersµÄ¹¤¾ß£¬²»°üÀ¨³ö×ÔOS´æ´¢Æ÷µÄ¡£

PG»º³å´æ´¢Æ÷

Õâ°ïÖúÎÒÃÇÊµÊ±ÕÆÎÕ¹²Ïí»º³åÇøÄÚµÄÊý¾Ý¡£ÊÕ¼¯À´×Ôshared_buffersµÄÊý¾Ý£¬²¢´æÖÁpg_buffercacheÄÚ²¿·½±ã²é¿´¡£

ÏÂÃæ¸ø³öÒ»¸ö²éѯÑùÀý£¬ËüÁгöÁËǰһ°ÙµÄ±í¸ñºÍ´æ´¢µÄ½Å±¾µÄÊýÁ¿¡£

ÕâÊÇÒ»¸öÍⲿģ¿é£¬¸ºÔðÌṩOSÈçºÎ´æ´¢½Å±¾µÄÐÅÏ¢¡£ÕâÒ»²ã¼¶½ÏµÍÇÒÓ°ÏìÁ¦½ÏÇ¿¡£
PgÔ¤¼ÓÔØÄ£¿é£¨Êý¾Ý»º´æÔ¤¼ÓÔØÄ£¿é£©

ÕâÊÇÒ»¸öÄÚÖÃÄ£¿é£¬ËüȷʵÄܹ»¸ºÔØÊý¾Ýµ½shared_buffers»òOS´æ´¢Æ÷»òΪ¶þÕß¹²ÓС£Èç¹û¾õµÃÄÚ´æÔ¤ÈÈÊǸöÎÊÌâµÄ»°£¬±ã¿ÉÒÔ½è´ËÀ´½øÐкܺõĵ÷ÊÔ¡£

ËäÈ»»¹ÓÐÆäËü¿ÉÒÔÓÃÒÔÁ˽âPostgres´æ´¢Æ÷µÄ·½·¨£¬µ«ÎÒÕâÀïÒѾ­ÁгöÁË×îΪÆÕ±éÒÔ¼°×îΪ±ãÓÚʹÓõļ¸ÏîÁË¡£ÓÐÁËÕâЩ¹¤¾ß£¬¾Í²»»áÔÙ³öÏÖÓÉÓÚÄÚ´æÎÊÌâµ¼ÖµÄÊý¾Ý¿âÔËÐлºÂý¡£

 

   
3615 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

»ùÓÚEAµÄÊý¾Ý¿â½¨Ä£
Êý¾ÝÁ÷½¨Ä££¨EAÖ¸ÄÏ£©
¡°Êý¾Ýºþ¡±£º¸ÅÄî¡¢ÌØÕ÷¡¢¼Ü¹¹Óë°¸Àý
ÔÚÏßÉ̳ÇÊý¾Ý¿âϵͳÉè¼Æ ˼·+Ч¹û
 
Ïà¹ØÎĵµ

GreenplumÊý¾Ý¿â»ù´¡Åàѵ
MySQL5.1ÐÔÄÜÓÅ»¯·½°¸
ijµçÉÌÊý¾ÝÖÐ̨¼Ü¹¹Êµ¼ù
MySQL¸ßÀ©Õ¹¼Ü¹¹Éè¼Æ
Ïà¹Ø¿Î³Ì

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ
×îл¼Æ»®
ͼÊý¾Ý¿âÓë֪ʶͼÆ× 8-28[±±¾©]
OCSMPÈÏÖ¤£ºOCSMP-MBF 8-29[±±¾©]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 9-9[±±¾©]
Èí¼þ¼Ü¹¹Éè¼Æ·½·¨¡¢°¸Àýʵ¼ù 9-24[±±¾©]
ÐèÇó·ÖÎöʦÄÜÁ¦ÅàÑø 10-30[±±¾©]
MBSEÌåϵÓëʵ¼ù 8-26[±±¾©]

MySQLË÷Òý±³ºóµÄÊý¾Ý½á¹¹
MySQLÐÔÄܵ÷ÓÅÓë¼Ü¹¹Éè¼Æ
SQL ServerÊý¾Ý¿â±¸·ÝÓë»Ö¸´
ÈÃÊý¾Ý¿â·ÉÆðÀ´ 10´óDB2ÓÅ»¯
oracleµÄÁÙʱ±í¿Õ¼äдÂú´ÅÅÌ
Êý¾Ý¿âµÄ¿çƽ̨Éè¼Æ

²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿â
¸ß¼¶Êý¾Ý¿â¼Ü¹¹Éè¼ÆÊ¦
HadoopÔ­ÀíÓëʵ¼ù
Oracle Êý¾Ý²Ö¿â
Êý¾Ý²Ö¿âºÍÊý¾ÝÍÚ¾ò
OracleÊý¾Ý¿â¿ª·¢Óë¹ÜÀí

GE Çø¿éÁ´¼¼ÊõÓëʵÏÖÅàѵ
º½Ìì¿Æ¹¤Ä³×Ó¹«Ë¾ Nodejs¸ß¼¶Ó¦Óÿª·¢
ÖÐÊ¢Òæ»ª ׿Խ¹ÜÀíÕß±ØÐë¾ß±¸µÄÎåÏîÄÜÁ¦
ijÐÅÏ¢¼¼Êõ¹«Ë¾ PythonÅàѵ
ij²©²ÊITϵͳ³§ÉÌ Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À
ÖйúÓÊ´¢ÒøÐÐ ²âÊÔ³ÉÊì¶ÈÄ£Ðͼ¯³É(TMMI)
ÖÐÎïÔº ²úÆ·¾­ÀíÓë²úÆ·¹ÜÀí