![]() ![]() ![]() |
|
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¡£ ¾ÖÏÞÐÔ ÁíÒ»¸öÏÞÖÆ¿É¾¯ÌèÐí¶à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£¬¶øÀûÓÃËüÓÅÔ½µÄÐÔÄÜ¡£
À´Ô´£ºLinux¼¼ÊõÖ§³ÖÍøÕ¾ |
|
Maintainted by Wu Xin, CBI, Peking University, China, 2003 |