COMPUTER SCIENCE

 

JAVA

 

R

 

XML

 

LINUX

 

OTHERS

 

BIOINFORMATICS

 

BIOJAVA

 

 

BIOSQL

 

 

MICROARRAY

 

 

MOTIF FINDING

 

 

REGULATION NETWORK

 

OTHERS

 

LIFE SCIENCE

 

 

MySQL VS PostgreSQL

 

ÎÒʹÓÃÄĸöÊý¾Ý¿â£ºPostgreSQL »ò MySQL?Õâ¸öÀÏÉú³£Ì¸µÄÎÊÌâÒѾ­À§»óÁË¿ª·¢ÕßÖÁÉÙÁ½ÄêÁË¡£ÎÒÈ«ÃæµØ½Ó´¥ÁËÕâÁ½¸öÊý¾Ý¿âϵͳ£¨MYSQLÓÐÒ»Ä꣬¶øPostgresÓжþÄêÁË£©£¬¶øÇÒ¶ÔMySQLÍøÕ¾Ìá³öµÄ¹ØÓÚÁ½ÕßÖ®¼äµÄ²îÒì·Ç³£ºÃÆæ¡£

1999Äê9Ô£¬µ±ÎÒÃÇÕý¿ªÊ¼¶ÔSoureForge¼ÜÉè»ù´¡µÄʱºò£¬ÎÒ¶ÔÕâÁ½¸öÊý¾Ý¿â×÷ÁËÐÔÄܲâÊÔ¡£µ±Ê±£¬¾¡¹ÜÎÒÒѾ­Ï°¹ßÓÚʹÓÃPostgresÍê³ÉËùÓй¤×÷£¬µ«Á½ÕßµÄÐÔÄܲîÒìÊÇÈç´ËÖ®Ã÷ÏÔÒÔÖÁÓëÎÒÃDz»µÃ²»²ÉÓÃMySQL¡£ÆäËûµÄ¹ßÓÃMySQLµÄ¿ª·¢ÕßÒ²Óµ»¤Õâ¸ö¾ö¶¨¡£

ÔÚµ±Ê±£¬Õâ¸öÐÔÄܲâÊÔҪʤÓÚÆ½Ê±ÈκÎÈËΪµÄ²âÊÔ¡£ÎÒÏë¿´¿´ÕâÁ½¸öÊý¾Ý¿âÔÚÍøÕ¾Ä³Ò»¾ßÌåµÄÍøÒ³ÉÏÓ¦ÓõÄÇé¿ö¡£ËùÌá¼°µÄÕâ¸öÍøÒ³ÊÇSourForgeÌÖÂÛÇø¡£Ëü°üÀ¨3¸ö±íµÄ¼òµ¥Ïà¹Ø½áºÏ¡£Ã¿¸ö±íÓÐ20-30,000ÐÐÊý¾Ý¡£ÒÔ¼°µÝ¹éµÄʵÏÖºÍǶÌ×µÄÐÅÏ¢£¬ËùÒÔÊý¾Ý¿âÔÚ´ËÒ³ÉϵÄÓ¦ÓÃȷʵÊÇÒ»¸öÆ¿¾±¡£

¿ªÊ¼ÊµÐУ¬ÎÒ´Ó¿âÖÐжÏÂÁËÕæÊµµÄÊý¾Ý¡£±à¼­ÁËSQL±í£¬²¢ÇÒ½«Æäµ¼ÈëMySQL 3.22.30ºÍPostgreSQL7.0.2£¬ÔËÐÐÔÚÓµÓÐ1G RAM µÄVA Linux quad-xeon 4100 serverÉϵÄRed Hat Linux 6.2ÉÏ¡£

ʹÎÒÏÝÈëµÄµÚÒ»¸öÎÊÌâÊÇ£¬ÔÚPostgresÖУ¬ÓÐÒ»¸ö²»¿É˼ÒéµÄÎÊÌ⣺ÿÐÐÊý¾Ý×î¶àÖ»ÄÜÓÐ8K¡£ÔÚÐÅÏ¢¹«¸æ°åÉÏ£¬Äãʱ³£»á³¬¹ýÿÐÐ8KµÄÏÞÖÆ¡£ËùÒÔPostgresÔÚµ¼ÈëÊý¾Ýʱ×èÈû¡£ÎªÁËÄܼÌÐøÊ¹Óã¬ÎÒÖ»µÃ½«Êý¾Ýµ"body"Åׯú£¬²¢ÇÒÖØÐµ¼ÈëÊý¾Ý¡£Postgres ¿ª·¢Ð¡×éÒѾ­Òâʶµ½ÁËÕâ¸öÏÞÖÆ£¬²¢ÇÒÔÚ7.1µÄ°æ±¾ÖÐÐÞ¸ÄÁË£¬¶øÇÒËûÃǸæËßÄ㣬Äã¿Éͨ¹ýÖØÐ±àÒëPostgresʹµÃËüÖ§³Ö32K/ÿÐУ¬¾¡¹ÜÕâÑù×ö»áʹÕû¸öϵͳµÄÐÔÄÜÊܵ½Ó°Ïì¡£

ÔÚÕâÒ»µãÉÏ£¬ÎÒÓÖÏÝÈëÁËPostgresÁíÒ»¸öСÎÊÌâÉÏ£¬ËüµÄ"serial"Êý¾ÝÀàÐÍ£¨µÈ¼ÛÓÚMYSQLµÄauto_increment)»áÔì³ÉÒ»¸ö"sequence"£ºµ±ËüµÄË«Ç×±í±»Åׯúʱ£¬Ëü±¾Éí²»±»Åׯú¡£Òò´Ë£¬µ±ÄãÏëÖØÐ´´½¨Õâ¸ö±íʱ£¬»áÒýÆðÒ»¸öÃû×Ö³åÍ»¡£ÓÐÐí¶àеÄÓû§±»Õâ¸öÎÊÌâËùÀ§»ó£¬ËùÒÔÕâЩÎÊÌâʹPostgresÔÚ²âÊÔÖÐʧȥһЩÓÅÊÆ¡£Ïà·´£¬MySQL´ÏÃ÷µ½Ëü¿ÉÒÔÔÚÄãµ¼ÈëÊý¾ÝµÄʱºò¶Ôauto_increment½øÐÐ×Ô¶¯ÔöÁ¿£¬È»¶øPostgresµÄsequence ²»¿ÉÒÔÔÚÄãµ¼ÈëÊý¾ÝÊ±ÖØÖ㬴ӶøÒýÆðвåÈë²Ù×÷µÄʧ°Ü¡£

·½·¨

ΪÁ˾¡¿ÉÄܵØÕæÊµ£¬ÎÒ´ÓÍøÕ¾ÉÏÑ¡ÔñÁËʵ¼ÊµÄÍøÒ³£¬²¢ÇÒʹËüÇáÇɵؽ»²æÓÚMySQLºÍPostgresÖ®¼ä¡£Õâ»ù±¾ÉÏÒâζ×ÅËùÓÐmysql_query()µ÷Óý«±»pg_exec()Ìæ»»¡£Õâ¸öÒ³°üÀ¨Ðí¶àѡȡÓëÁ¬½Ó²Ù×÷£¬ÓëµäÐ͵ÄÍøÕ¾×öµÄ²î²»¶à¡£

Ò»µ©Õâ¸ö²âÊÔÒ³ÔËÐк͵÷ÊÔ£¬ÎÒ±ãʹÓÃ"AB"£¬¾ÍÊÇ"Apache Benchmarking"Ó¦Óü¯£¬´ÓÎҵŤ×÷վͨ¹ýÎÒµÄ100M¾ÖÓòÍøµ½´ïquad-xeon·þÎñÆ÷¡£ÎªÁËÔÚ¸ºÔصÄÊýÁ¿Éϵõ½Ò»¸ö¸ÅÄÎÒʹÓÃAB½øÐи÷ÖÖ²¢·¢Á¬½ÓµÄ²âÊÔ£¬´Ó10-120,µ±À뿪ÁËÕâЩҳºó£¬Õâ¸öÊýÎȶ¨ÔÚÁË1000ÉÏ¡£

ΪÁ˸ü¼ÓµØ½Ó½üʵ¼ÊÓ¦Óã¬ÎÒÔڽű¾Öа²ÖÃÁËÒ»¸öËæ»úÊýÉú³ÉÆ÷£¬Ëü²åÈëÒ³ÃæµÄ10%µÄÊý¾Ýµ½Êý¾Ý¿âÖС£ÔÚPHPBuilderÖÐËùÓÐÌÖÂÛÇøÒ³ÃæÓÐ10%ÊÇ×÷Ϊ·¢ËÍÐÂÐÅÏ¢µÄ¡£

½øÒ»²½µØ£¬¾ÍÒÔÉÏËù˵£¬ÎÒ¶¼Ê¹ÓôÓÏֳɵÄÊý¾ÝÖÐÌáÈ¡µÄÊý¾Ý£¬ÄãµÃ²»³ö±È´Ë¸üÕæÊµµÄÇé¿öÁË¡£

ÊýÖµ

ʵ¼Ê²âÊÔ½á¹û£º

²¢·¢Á¬½Ó w/p:

10 ¿Í»§ - 10.27 Ò³/Ãë333.69 kb/s

20 ¿Í»§ - 10.24 Ò³/Ãë332.86 kb/s

30 ¿Í»§ - 10.25 Ò³/Ãë333.01 kb/s

40 ¿Í»§ - 10.0 Ò³/Ãë324.78 kb/s

50 ¿Í»§ - 10.0 Ò³/Ãë324.84 kb/s

75 ¿Í»§ - 9.58 Ò³/Ãë311.43 kb/s

90 ¿Í»§ - 9.48 Ò³/Ãë307.95 kb/s

100 ¿Í»§ - 9.23 Ò³/Ãë300.00 kb/s

110 ¿Í»§ - 9.09 Ò³/Ãë295.20 kb/s

120 ¿Í»§ - 9.28 Ò³/Ãë295.02 kb/s (2.2% ʧ°Ü)

²¢·¢Á¬½Ów/10% ²åÈë:

30 ¿Í»§ - 9.97 Ò³/Ãë324.11 kb/s

40 ¿Í»§ - 10.08 Ò³/Ãë327.40 kb/s

75 ¿Í»§ - 9.51 Ò³/Ãë309.13 kb/s

MySQL

²¢·¢Á¬½Ó²âÊÔ w/p:

30 ¿Í»§ - 16.03 Ò³/Ãë 521.01 kb/s

40 ¿Í»§ - 15.64 Ò³/Ãë 507.18 kb/s

50 ¿Í»§ - 15.43 Ò³/Ãë 497.88 kb/s

75 ¿Í»§ - 14.70 Ò³/Ãë 468.64 kb/s

90 - mysql ±ÀÀ£

110 - mysql ±ÀÀ£

120 - mysql ±ÀÀ£

²¢·¢Á¬½Ó²âÊÔw/op:

10 ¿Í»§ - 16.55 Ò³/Ãë537.63 kb/s

20 ¿Í»§ - 15.99 Ò³/Ãë519/51 kb/s

30 ¿Í»§ - 15.55 Ò³/Ãë505.19 kb/s

40 ¿Í»§ - 15.46 Ò³/Ãë490.01 kb/s 47 ʧ°Ü

50 ¿Í»§ - 15.59 Ò³/Ãë482.24 kb/s 82 ʧ°Ü

75 ¿Í»§ - 17.65 Ò³/Ãë452.08 kb/s 363 ʧ°Ü

90 ¿Í»§ - mysql ±ÀÀ£

²¢·¢Á¬½Ó w/10% ²åÈëÔËËã:

20 ¿Í»§ - 16.37 Ò³/Ãë531.79 kb/s

30 ¿Í»§ - 16.15 Ò³/Ãë524.64 kb/s

40 ¿Í»§ - 22.04 Ò³/Ãë453.82 kb/sec 378 ʧ°Ü

ÎÒ¾õµÃ²âÊÔ½á¹ûÖÐ×îÓÐÒâ˼µÄÊÂÇéÊǹ۲ìûÓгö´íÇé¿öÏÂÒѾ­×°ÈëÔËÐеÄPostgresÄܸºÔضàÉÙ¡£Êµ¼ÊÉÏ£¬PostgresÔÚûÓдíÎóµÄÇé¿öϸºÔغÃÏñÒª±ÈMySQL¸ß3±¶¡£MySQLÔÚ¸ºÓÐ40-50¸ö²¢·¢Á¬½Óʱ¿ªÊ¼Ê§³££¬¶øÔÚûÓÐÆäËüÓ°ÏìµÄÇé¿öÏ£¬PostgresÄÜʹ120¸ö²¢·¢Á¬½ÓÔËÐÐ×ÔÈç¡£ÎҵIJ²âÊÇ£ºÈç¹ûÓÐ×ã¹»µÄÄÚ´æÓë¹»¿ìµÄCPU£¬PostgresÄܹ»Õý³£¸ºÔصÄÔ¶Ô¶²»Ö¹120¸ö²¢·¢Á¬½Ó¡£

±íÃæÉÏ¿´£¬ÕâÏÔÈ»ÊÇPostgresµÄÒ»¸ö¾Þ´óµÄʤÀû£¬µ«ÊÇÈç¹ûÄã×Ðϸ¹Û²ìһϸü¶àϸ½ÚµÄ²âÊÔ½á¹û£¬¿ÉÒÔ·¢ÏÖPostgresÉú³ÉÿҳµÄʱ¼äÒª³¤2-3±¶£¬ËùÒÔËüÐèÒªÀ©Õ¹¸ºÔØÖÁÉÙ2-3±¶Ôò¸ÕºÃÄÜÓëMySQL´ò³ÉƽÊÖ¡£ËùÒÔ°´ÕÕ²»³ö´íÎóµÄÇé¿öÏ£¬Á½Õß²¢·¢Éú³É¾¡¿ÉÄܶàµÄÒ³£¬ÔòËûÃÇÖ®¼ä¼¸ºõûÓÐʲô²î±ð¡£°´ÕÕijһʱ¿ÌÉú³ÉÒ»Ò³µÄÇé¿ö¿´£¬MySQLȷʵ¿ì2-3±¶¡£

ÁíÍâÒ»¸öÓÐȤµÄÊÂÇéÊÇ£ºÔÚÒÔÉÏÐðÊöµÄ"10%²åÈëÔËËã"µÄ²âÊÔÖУ¬MySQLÔÚ·Ö½âÔËËã·½Ãæ¿ìһЩ¡£Ñо¿±íÃ÷£¬µ±²åÈëÔËËã²Ù×÷·¢Éúʱ£¬MySQLËø¶¨Õû¸ö±í£¬¶øPostgresÓÐÒ»¸öÃÀÃîµÄ"better than row-level locking"µÄ»úÖÆ¡£Õâ¸ö²»Í¬ºÜ¿ìÒýÆðÁËMySQL²¢·¢Á¬½ÓµÄ¶Ñ»ý£¬´Ó¶øµ¼Ö±ÀÀ£¡£Í¬ÑùµÄ£¬Èç¹ûÄãÕýÔÚ´ÓÊý¾Ý¿âÖнøÐдóÁ¿µÄÑ¡ÖвÙ×÷£¬¶øÁíÍâµÄ½ø³ÌÕýÔÚ¶Ô±í½øÐвåÈë²Ù×÷¡£Postgres¿ÉÒÔÍêÈ«µØ²»ÊܸÉÈÅ£¬¶øMySQL»á¶Ñ»ýÁ¬½ÓÖ±µ½Ïñֽů×öµÄ·¿×ÓÒ»Ñù±ÀÀ£¡£

Äã»á·¢ÏÖÔÚPHPÖеÄÎȶ¨µÄÁ¬½Ó²¢²»ÓÐÖúÓÚMySQL¶àÉÙ£¬Ïà·´È´Ã÷ÏÔµØÓÐÖúÓÚPostgres¡£Êµ¼ÊÉÏ£¬ÆäÓÚÎȶ¨µÄÁ¬½ÓµÄPostgres²âÊÔÒª¿ì30%¡£Õâ¾Í¸æËßÎÒÃÇ£¬PostgresÔÚ¿ª·ÅÐÔÁ¬½ÓÓëÈ·ÈϽø³ÌÉÏÐèÒªÕ¼ÓôóÁ¿µÄϵͳ¿ªÏú¡£ÆäÖÐÓÐһЩÊÇLinuxµÄ´íÎóºÍËüµÄºÍ½©Ó²µÄ½ø³Ì°²ÅÅ¡£¾¡¹ÜÈç´Ë£¬MySQL²¢²»ÔÙºõÄãÈçºÎ¿´´ýËü¡£

MySQL

MySQLµÄÓÅȱµãÒѾ­ÎªÐí¶àÈËËùÖªµÀ£ºËüÊÇÒ»¸ö¿ìËٵġ¢ÇáÁ¿¼¶µÄÊý¾Ý¿â£¬µ«ÊÇ»ù±¾ÉÏ¿ÉÒÔΪ´ó¶àÊýµÄÍøÕ¾·þÎñµÃºÜºÃ¡£

ÎÞÂÛÈçºÎ£¬Èç¹ûÄã¼Æ»®ÔÚÒ»¸ö¸ßÁ÷Á¿µÄÕ¾µã£¨ËµÃ÷£¬Ã¿ÌìÉú³É¶àÓÚ500,000Ò³£©ÉÏ£¬ÄÇôÍüÁËMySQL°É¡£ÒòΪËüÍùÍù»á±ÀÀ£»òÕßÔÚ×°ÈëÔËÐкóËÀ»ú¡£ÈκÎÔø¾­·ÃÎʹýSlashdotµÄÈ˶¼¿ÉÒÔÖ¤Ã÷ËüµÄÈõµã¡££¨mod_perl and MySQL)

»°Ëµ»ØÀ´£¬MySQLÖ¤Ã÷ÁË¿Éʹ¼«´ó¶àÊýÍøÕ¾µÄÒ³Éú³ÉËÙ¶È×î¸ßÔÚÿÃë15Ò³¡£Èç¹ûÄã¾­³£µØÔËÐÐÔÚÿÃë15Ò³Ö®ÉÏ£¬ÄÇôÄ㽫»á·Ç³£¸ßÐ˵ØÖ§¸¶¸ü´óµÄ·þÎñÆ÷»òÕßOracle licenseµÄ·ÑÓá£

ÓÅÊÆ

Ã÷ÏԵأ¬MySQLʤ¹ýPostgresµÄÓÅÊÆ¾ÍÔÚÓÚÐÔÄÜ¡£¶øÇÒÔÚËüµÄ·¢ÐаæÖУ¬»¹¾ßÓÐһЩǿÓÐÁ¦µÄ¹ÜÀí¹¤¾ß¡££¨ÆäÖÐһЩ¹¤¾ßÔÊÐíÄã²ì¿´½ø³Ì²¢ÇÒ¿ÉÒÔÔڳ̶ÈÔËÐÐʱ½øÐж¯Ì¬µ÷ÊÔ¡££©±ÈÈçÈȱ¸·Ý£¬Îļþ»Ù»µ»Ö¸´¹¤¾ßµÈ¡£

ÎÒÒ²·Ç³£ÈÈÖÔÓÚMySQLµÄÃüÁîÐй¤¾ß¡£Äã¿ÉÒÔʹÓÃÃèÊöºÍ²ì¿´ÃüÁîÀ´¹Û²ìÊý¾Ý¿âÓë±íµÄ½á¹¹¡£¶øPostgresµÄÃüÁîÔòÃ÷ÏÔµØÉÙ(/d¿ÉÒÔÏÔʾһÕÅʾ·¶±í£©


¾ÖÏÞÐÔ

´ÓÊý¾Ý¿âÐмÒÌý˵µÄµÚÒ»¼þʾÍÊÇMySQLȱ·¦transactions,rollbacks, ºÍsubselectsµÄ¹¦ÄÜ¡£Èç¹ûÄã¼Æ»®Ê¹ÓÃMySQLдһ¸ö¹ØÓÚÒøÐС¢»á¼ÆµÄÓ¦ÓóÌÐò£¬»òÕ߼ƻ®Î¬»¤Ò»Ð©ËæÊ±ÐèÒªÏßÐÔµÝÔöµÄ²»Í¬ÀàµÄ¼ÆÊýÆ÷£¬Ä㽫ȱ·¦transactions¹¦ÄÜ¡£ÔÚÏÖÓеķ¢²¼°æ±¾µÄMySQLÏ£¬Çë²»ÒªÓÐÈκεÄÕâЩÏë·¨¡££¨Çë×¢Ò⣬MySQLµÄ²âÊÔ°æ3.23.xϵÁÐÏÖÔÚÒѾ­Ö§³ÖtransactionsÁË£©¡£

Ôڷdz£±ØÒªµÄÇé¿öÏ£¬MySQLµÄ¾ÖÏÞÐÔ¿ÉÒÔͨ¹ýÒ»²¿·Ö¿ª·¢ÕßµÄŬÁ¦µÃµ½¿Ë·þ¡£ÔÚMySQLÖÐÄãʧȥµÄÖ÷Òª¹¦ÄÜÊÇsubselectÓï¾ä£¬¶øÕâÕýÊÇÆäËüµÄËùÓÐÊý¾Ý¿â¶¼¾ßÓеġ£»»¶øÑÔÖ®£¬Õâ¸öʧȥµÄ¹¦ÄÜÊÇÒ»¸öÍ´¿à£¬µ«ÊÇËü¿ÉÒÔ±»¿Ë·þ¡£

Îȶ¨ÐÔ

MySQLÔÚ³¤ÆÚʹÓõÄÎȶ¨ÐÔÉÏʧÁË·Ö¡£±ÈÈ磬MySQLÔÚÔËÐÐÁË30-60Ìì×óÓÒµÄʱ¼äºó£¬Ã»ÓÐÀíÓÉµØ¾Í·ÅÆúÁËËæ»úghost¡£Ðí¶à¿ª·¢ÕßʹÓÃ"statically"À´±àÒëMySQL¾ÍÊÇΪÁËÕâ¸öÔ­Òò£¬¶øÇÒÕâ¸ö·½·¨°ïÖúÁËÐí¶àÈË¡£Õâ¸öÎÊÌâÒ²¿ÉÒÔͨ¹ýÉèÖÃÒ»¸öºÃµÄµ÷¶È³ÌÐòÈÃMySQLÿÔ±»É±ËÀ²¢ÖØÆðÒ»´ÎÀ´¿Ë·þ¡£Õâ²¢²»ÊÇÒ»¸öÍêÈ«¿ÉÈ¡µÄ·½·¨£¬µ«ÖÁÉÙÒ²ÊÇÒ»¸ö°ì·¨¡£

MySQLÔÚÊØ»¤½ø³ÌµÄ½¡×³ÐÔÉÏҲʧÁË·Ö£¬µ«Õâ¸öȱµã±»MySQL´ÓÀ´²»»á³öÏÖ²»¿É¿¿µÄÊý¾ÝÎļþ¶øÃÖ²¹¡£×îºóÒ»¼þÈÃÈ˵£ÐĵÄʾÍÊÇÄãÖØÒªµÄÊý¾ÝÎļþ»á²»ÆÚµØ³ö´í£¬¶øMySQLÈ´ºÜºÃµØ½â¾öÁËÕâÒ»µã¡£ÔÚÒ»ÕûÄêµÄÔËÐÐMySQLÖ®ºó£¬Õâ´Óδ¼û¹ýÊý¾ÝÎļþ»òË÷ÒýÎļþÇáÒ׵سö´í¡£¶øÔÚͬÑùµÄʱ¼äÄÚ£¬ÎÒÒѾ­ÎªÒ»Ð©PostgresÊý¾Ý¿â×öÁË2-3´ÎµÄ»Ö¸´ÁË¡££¨¼Çס£¬±¸·ÝÓÀÔ¶ÊÇÄã×îºÃµÄÅóÓÑ£¬Õâµã¿ÉÒÔ´ÓPHPBUILDERÊý¾ÝµÄ±ÀÀ£¿´³ö£©

PostgresSQL

PostgresµÄ²âÊÔ½á¹û¿ÉÄÜ»áʹÐí¶àÈ˸е½¾ªÆæ£¬¾¡¹ÜPostgresÔÚÒ»Ð©ÍøÕ¾¿ª·¢ÕßÖÐÉùÓþ²¢²»ÔõôºÃ£¨×î³õµÄPostgresµÄ·¢²¼°æ±¾ÖгýÁ˶ÔÂäºóµÄÐÔÄÜÒÔÍ⣬¶ø¶ÔÆäËû²¿·Ö´óËÁÉ¢²¼Ò¥ÑÔ£©¡£µ«¸ù¾ÝÎҵľ­ÑéºÍ²âÊÔ£¬ÕâЩ²»Á¼ÉùÓþ²¢²»ÍêÈ«ÓÐÀíÓÉ¡£Êµ¼ÊÉÏ£¬PostgresSQL¿ÉÒÔ³ÐÊÜ3±¶ÓÚMySQLµÄ¸ºÔضøÇÒûÓÐÈκδíÎ󣬵±È»ÔÚÏàͬµÄÓ²¼þºÍϵͳ»·¾³Ï¡£

PostgresÒ»°ãÔËÐÐÔÚ 10Ò³/ÿÃëµÄËÙ¶ÈÖ®ÉÏ£¬×㹻Ϊ 400,000Ò³/ÿÈÕµÄÁ÷Á¿·þÎñ£¬¼Ù¶¨Ò»¸ö¹æÔòµÄÁ÷Á¿ÇúÏß·åÖµ2±¶ÓÚ×îСֵ¡£ÕâÊÇÒ»¸ö¿ÉŵÄÊýÁ¿£¬ËüÔ¶Ô¶µØ³¬¹ýÁË´ó¶àÊýÈËÒªÔÚËûÃǵÄÍøÕ¾ÉÏ¿´µ½µÄÊýÁ¿¡£´ËÍâ£¬ÍøÕ¾µÄ´ó¶àÊýҳûÓÐÕâ´Î²âÊÔÖеÄÄÇô¸´ÔÓ¡£ÕýÈçMySQLµÄÇé¿öÒ»Ñù£¬Èç¹ûÄã¿ÉÒÔ³¬¹ýÕâ¸ö×î¸ßÏÞ¶È£¬Ä㽫»á·Ç³£ÀÖÒâµØ»¨Ç®ÌíÖÃÓ²¼þ¡£ÓÉÓÚPostgresµÄ½á¹¹£¬Èç¹ûÄãÔö¼Ó´¦ÀíÆ÷ºÍÄڴ棬ÄÇôËüµÄÐÔÄÜ¿ÉÒÔ¼ÌÐøÔö³¤¡£


ÓÅÊÆ

PostgresÓÐһЩ·Ç³£¸ß¼¶µÄ¹¦ÄÜ¡£¶øÆäÖеĴó¶àÊý¹¦ÄÜÎÒ²¢²»Ê¹Óã¬ËüÃDZ»ÕæÕýµÄÊý¾Ý¿â¸ßÊÖËù²ÉÓá£Ðí¶à¿ª·¢Õß²»ÀûÓÃÕâЩ¹¦ÄÜ£¬´Ó¶øÎÞ·¨ÊµÏÖËûÃǵÄÏë·¨¡£

ÀýÈ磬Èç¹ûÄãÕýÐèÒª×ö¶à´ÎµÄ¸üÐÂ/²åÈë/ɾ³ý²Ù×÷£¬Äã¿ÉÒÔÀûÓÃtransaction¡£±ÈÈ磬ÄãÒªÔÚÄãµÄÓû§ÁбíÖвåÈëÒ»¸öеÄÓû§£¬Í¬Ê±ÔÚÁíÒ»¸ö±íÖУ¬Òª²åÈëÒ»ÐУ¬¶øÇÒÒ²Òª¸üб𴦵ÄÒ»¸ö±êÖ¾¡£¼ÙÈçÕâÑù£¬Èç¹ûµÚÒ»´Î²åÈë³É¹¦£¬¶øµÚ¶þ´Îʧ°Ü£¬ÄãÔõô°ì£¿ÔÚPostgresÖУ¬Äã¿ÉÒÔ»ØÍËÈ«²¿²Ù×÷£¬¶ø¹Û²ì³ö´íµÄÔµÓÉ¡£¶øÔÚMySQLÖУ¬³ö´íʱÄã»á·Ç³£½ôÕÅ£¬³ý·ÇÄã°²ÅÅÁËһЩÂß¼­¿ÉÒÔ¿ØÖÆÕâ¸ö¾ÖÃæ¡£ÔÚʵ¼ÊÓ¦ÓÃÖУ¬µÚÒ»¸öÎÊÌâ²»»á³ö´í£¬³ý·ÇÄãÊÇÒ»¸öÔã¸âµÄ³ÌÐòÔ±¡£¶øÈç¹ûµÚ¶þ¸öÎÊÌâ³ö´í£¬ÄÇôÕâ¸ö½á¹û²¢²»·Ç³£ÑÏÖØ¡££¨³ý·ÇÕâÊÇÒ»¸ö²»ÔÊÐí³ö´íµÄ¶øÃ°ÏյijÌÐò£¬±ÈÈç»á¼Æ¡¢ÒøÐÐÒµ¡¢ÆÀÂÛ½çµÄÓ¦ÓóÌÐò¡££© ÎÞÂÛÈçºÎ£¬ÔÚPostgres7¡£0+ÖÐÏÖÔÚÒѾ­Ö§³ÖÁËÍⲿ¹Ø¼ü×Ö£¬ÄǾÍÒâζ×ŵ±Äã²åÈëÒ»ÐУ¬Êý¾Ý¿â»á×öһЩ¹«Õý¶øºÏÀíµÄУÑé¼ì²ì¡£Í¬Ñù£¬Èç¹ûÄãҪɾ³ýµ±Ç°±íÒ»ÐУ¬¶øÓÐÁíÒ»¸ö±íÒÀÀµÓÚµ±Ç°±í£¬Êý¾Ý¿âÔò²»»áÈÃÄã²Ù×÷¡£ÎÒϲ»¶Õâ¸öÏë·¨²¢ÇÒÄÜÔ¤¼ûÈçºÎÀûÓÃÕâ¸ö¹¦ÄÜÖØÐ´Õû¸öÍøÕ¾¡£

Triggers ºÍViewsÊÇÄܹ»ÔÚPostgresÖУ¬¶ø²»ÊÇÔÚMySQLÖÐʹÓõÄÓÐȤ¶øÓÐÓõŤ¾ß¡£¾¡¹ÜÎÒ¶¼Ã»ÓÐʹÓùý£¬µ«ÎÒ¿ÉÒÔÏëÏóÈç¹ûÎÒÖØÐÂÉè¼ÆSourceForgeʱ½«ÈçºÎµØÆµ·±ÀûÓÃviews¡£

¾ÖÏÞÐÔ
PostgresµÄÖ÷Òª¾ÖÏÞÐÔ²¢²»ÊÇËüµÄÐÔÄÜ£¨ÒòΪ´ó¶àÊýÍøÕ¾½«ÓÀÔ¶²»»áÏÝÈëÕâ¸öÎÊÌ⣩¡£µ«ÊÇÓÉÓÚ±àÂëÓ²»¯µÄÏÞÖÆ£¬ÏñÿÐÐ8kµÄÏÞÖÆ£¨ÈÕÆÚ»á»Øµ½ÒÔǰµÄʱÆÚ£©¡£µ±ÎÒʹÓÃPostgresÉè¼ÆGeocrawler.com£¬ÎÒ²»µÃ²»½«´óµÄe-mail·Ö³Éÿ8kÒ»¿éÒÔÈÆ¹ýÕâ¸ö½©Ó²µÄÏÞÖÆ¡£ÔÚĬÈÏÇé¿öÏ£¬Postgres±»±àÒë³ÉÖ»Ö§³Ö32¸öÁ¬½Ó£¬ÕâÊDz»×ãÒÔÓÃÀ´×÷¸ßÁ÷Á¿ÍøÕ¾Ó¦Óõģ¬ÌرðÊÇ¿¼Âǵ½PostgresÉú³ÉÿҳµÄËÙ¶ÈÒª±ÈMySQLÂý¡£

ÁíÒ»¸öÏÞÖÆ¿É¾¯ÌèÐí¶àPHPµÄÓû§£ºPostgresûÓÐÓëMySQLµÄmysql_insertid()µÈ¼ÛµÄº¯Êýµ÷Óá£Èç¹ûÔÚMySQLµÄÊý¾Ý¿âÖвåÈëÒ»ÐÐÊý¾Ý£¬MySQL½«·µ»ØÕâÐÐÖ÷¹Ø¼ü×ÖµÄID¡£¶øÔÚPostgresÖÐÍê³ÉÕâÑùÒ»¸ö²Ù×÷ÐèÒªÈÆÐí¶àȦ×Ó£¬ÕâÊÇÒ»¼þ·Ç³£Í·Í´µÄÊ£¬¶øÇÒÈç¹ûÓõĶà¿ÉÄܻήµÍЧÂÊ¡£

Îȶ¨ÐÔ

PostgresÔÚ³¤Ê±¼äÔËÐеÄÇé¿öÏÂÔËÐÐÁ÷³©¶ø²»³ö´í¡£ÎÒµÄPostgres 6.5.3×°ÔÚÓÖÀÏÓÖÀÛµÄPowerMac 8500ÉÏ£¬ÎÞ´íÔËÐÐÒѾ­ÓÐ90ÌìÁË£»¶øÇÒÿÌìÉú³É50-100,000Ò³¡£µ±Postgres×°ÈëÔËÐУ¬²»»áÍ˳ö£¬¶øÔÚѹÁ¦Ï²»ÐèÒªghost¡£

PostgresÓÐÒ»¸öÎÊÌâÊǵ±Äãȷʵ·¢ÉúÎÊÌâʱ£¬Ò»°ãËü¾ÍÕæ»µÁË¡£ÔÚһЩ¾ÉµÄPostgres6.4.xÖУ¬ÎÒ»¹·¢ÏÖÁ˸ü¼ÓÑÏÖØµÄÎÊÌ⣺Ðí¶àÖØ¸´¶øÏàͬµÄÊýÖµ±»²åÈ뵽ͬһ¸öÖ÷¹Ø¼ü×ÖÖУ¨ÕâÊDz»ÔÊÐíÔÚÈκÎÇé¿öϳöÏֵģ© Postgres»¹ÓÐÁíÒ»ÎÊÌâ¾ÍÊÇ»á³öÏÖÁîÈ˽ôÕŵIJ»ÍêÕûµÄË÷ÒýºÍ±í£¬Äã²»ÄÜÂÔ¹ý»ò°ÚÍÑËü¡£ÎÒÔÚPostgres7ÖÐûÓÐÔÙ·¢ÏÖ¹ýËü£¬µ«ÎÒûÓÐ¶ÔÆäÈ«ÃæÊ¹Óã¬ËùÒÔÎÞ·¨ÖªµÀ¸ü¶à¡£

½áÂÛ

Õâ´Î²âÊÔ¼¸ºõ֤ʵÁËÎÒËùÖªµÀµÄ£ºÁ½¸öÊý¾Ý¿âϵͳ¶¼¿ÉÒÔΪ´ó¶àÊýÍøÕ¾·Ç³£ºÃµØ·þÎñ¡£ËüÃÇÓë×ÀÃæÊý¾Ý¿â£¬ÏñFileMakerºÍMS AccessÏà±È£¬·Ç³£Ã÷ÏԵؿ졣Postgres ºÍ MySQL¶¼ÊÇ×ÔÓɶøÃâ·ÑµÄ£¬¶øÇÒÓлý¼«µÄ¿ª·¢ÍÅÌåËùÖ§³Ö¡£

Èç¹ûÒªÔÚÁ½Õß¼äÑ¡ÔñÒ»¸ö£¬ÄãÊ×ÏÈÐèÒªÃ÷°×ÄãÃæÁÙµÄÏÞÖÆ²¢ÇÒÖªµÀÄãÊÇ·ñÐèÒªPostgresµÄtransactionµÄÖ§³Ö»òÕßMySQLµÄlarge-text-areaÖ§³Ö¡£Äã¿ÉÄܶ¼Òª£¬ÕâÖÖÇé¿öÏ£¬ÄãÖ»Óеȵ½½«À´µÄijһÌ죬Á½ÕßÍÆ³öеÄÎȶ¨·¢²¼°æ¡£

ÐèÒªÌá³öµÄÒ»¼þ·Ç³£ÓÐȤµÄÊÂÊÇ£ºÕâÁ½¸öÊý¾Ý¿âËÆºõ»áÔÚij´¦Öغϣ¬¾ÍÊǵ±MySQL¾ßÓÐtransactionµÄÖ§³Ö²¢ÇÒÂýÂý¼ÓÈëһЩÐµĹ¦ÄÜÈ磺subselect£¬¶øPostgresÔÚÖ´ÐÐÐÔÄܺÍÎȶ¨ÐÔÉÏÓÐËù¸Ä½øÊ±¡£

×îºó£¬×÷ΪÊý¾Ý¿â¸ßÊÖÑ¡Ôñ£¬PostgresÓ¦µ±·Ç³£Áé»î¡£Íⲿ¹Ø¼ü×Ö£¬views,subselects,ºÍtransactions¶¼·Ç³£µØ°ô--Èç¹ûÄãÐèÒª²¢ÇÒÓ¦ÓÃËüÃÇ¡£Èç¹ûÄã²»ÐèÒª»ò²»Ê¹ÓÃÕâЩ¹¦ÄÜ£¬Äã×îºÃʹÓÃMySQL£¬¶øÀûÓÃËüÓÅÔ½µÄÐÔÄÜ¡£


ÔĶÁ£º2408´Î

À´Ô´£ºLinux¼¼ÊõÖ§³ÖÍøÕ¾

 

Maintainted by Wu Xin, CBI, Peking University, China, 2003