以äžã¯ãã¹ãŠãåè·¯ã®é©å¿ãã³ãŒãã®åŠçãããã³ããŒã¿ã®è»¢éã®ããã»ã¹ã«åœ±é¿ãäžããå¯èœæ§ã®ããå žåçãªMySQLã®èšèšããã³æäœãšã©ãŒã®ãªã¹ãã§ãã ããŸããŸãªé°æ¹¿ãªçµã¿åããã§ããããã¹ãŠã®å°ããªãã®ãååšããããšããæ¢åã®ããŠãããŒãµã«ãããŒã«ãããªãã®ããŒã¹ã«ç¹ã«å¯ŸåŠããå¯èœæ§ãäœãçç±ã®1ã€ã§ãã
ãã®ããã åã®èšäºã§ãéã®åŒŸäžžãæ¢ãæéãç¡é§ã«ãããèªåã®ãèã®äžã«ãäœããæžãããšããå§ãããŸããã ãã®èšäºã¯ããã®ãããªããŒã«ã®äœæã容æã«ããæœåšçãªæ¬ é¥ãææããããšãç®çãšããŠããŸããæ¬ é¥ã®ååšã¯æ¯èŒçè¿ éã«ç¢ºèªã§ããŸãã
ããžãã¹ã«åãæãããã
ããã©ã«ãå€
MySQLã¯ãéçºè ã®äœæ¥ãåçŽåããã³å®¹æåããããšããããšã§æåã§ãã ååãšããŠãæäœã®éå§æã«ã¹ããªã¯ãã¢ãŒãããªãã«ãªããããŒãã«ã«ããŒã¿ãæ¿å ¥ãããšãã«æ£ããããã©ã«ãå€ããªãããšã責任ãæã£ãŠå ±åããŸãã
èšãæãããšãDEFAULTãã©ã¡ãŒã¿ãŒãªãã§ããŒãã«ã§å®£èšãããåãããå ŽåããããŸãã ããŒãã«ã«è²Œãä»ããå Žåããã®åãæå®ããããšãå¿ããŸãããMySQLã¯æ··ä¹±ããããããã©ã«ãããæ¿å ¥ããŸãã ååãšããŠãããã¯0ã空ã®æååããŸãã¯å¯Ÿå¿ããããŒã¿åã®åæ§ã®ããŒããå€ã§ãã PostgreSQLã¯åžžã«å¶çŽéåãã¹ããŒãããããã¢ããªã±ãŒã·ã§ã³ã³ãŒãå ã®å¯Ÿå¿ããç¶æ³ãä¿®æ£ããæºåãããŠãã ããã
ãŸããäžé©åãªããã©ã«ãå€ãDATE / DATETIME / TIMESTAMPã¿ã€ãã®ãã£ãŒã«ãã«æ¿å ¥ãããšããMySQLã®ææ ã«ã泚ç®ããããšæããŸãã ãã®ãããªãã£ãŒã«ãã§ã®äžæ³šæãªäœæ¥ã«ãããããŒã¿ããŒã¹ã«ã0000-00-00ããŸãã¯ã00:00:00 0000-00-00ããªã©ã®è¡ãååšããå¯èœæ§ããããŸãã ãã¡ãããPostgreSQLã¯ãããèŠéããŸããã å ã®ããŒã¿ããŒã¹ã®ããŒã¿ããä¿®æ£ãããããã€ã³ããŒãæã«åŒ·å¶çã«NULLã«çœ®ãæããŠãã¢ããªã±ãŒã·ã§ã³ã³ãŒããšå¯Ÿå¿ããããŒãã«ã®æ§é ãé©åã«ä¿®æ£ããå¿ èŠããããŸãã
é倧床ã®å¶çŽãå³å¯ã¢ãŒã
ããã©ã«ãå€ãšå¶éã®ãããã¯ãç¶ããŠãMySQLã¯ãããã«éåããããšã«ãéåžžã«å¿ å®ã§ãã ããšãã°ãã¿ã€ãVARCHAR2ïŒ255ïŒã®ãã£ãŒã«ãã宣èšããŸããã MySQLã«ã¯ãæå®ããã次å ã«åãŸããªãå Žåãè¡ãèªåçã«åãæšãŠããããšããäžå¥åº·ãªåŸåããããŸãã PostgreSQLã¯èªããŸãã
ãã®åé¡ã®ã³ã³ããã¹ãã§ã¯ãSTRICTã¢ãŒãããªãã®å Žåãæå®ããããšã³ã³ãŒãã£ã³ã°MySQLã®è¡ã®äžæ£ãªãã€ãã·ãŒã±ã³ã¹ããµã€ã¬ã³ãã«ã«ããããããšã«ã泚æããå¿ èŠããããŸãã PostgreSQLã¯åžžã«äžæ£ãªãã€ãã·ãŒã±ã³ã¹ãèªããŸãã PostgreSQLçšã®ã¢ããªã±ãŒã·ã§ã³ã³ãŒããæºåãããšãã¯ãå ¥åãããã«ãµãã¿ã€ãºããæºåãããŠãã ããã
ãŸããäºåã«ããã¯ã¢ãããäœæããŠãMySQLããŒã¿ããŒã¹å šäœãäžè²«ããŠåããšã³ã³ãŒãã£ã³ã°ã«ãªã£ãŠããããšã確èªããŠãã ããããŸããphpMyAdminã䜿çšããŠãã¹ãŠã§ãŒãã³èªãã±ãŒã«ãªã©ã§VARCHAR2ãã£ãŒã«ããæã€ããŒãã«ãäœæããããã°ã©ãã¯ããŸããã
ãã©ã³ã¶ã¯ã·ã§ã³ãšèªåã³ããã
ããã°ã©ããŒã¯éåžžããã©ã³ã¶ã¯ã·ã§ã³ã䜿çšããããšãæããŠããŸãããŸãã¯ã圌ã®èœåããªãããã«ããã©ã³ã¶ã¯ã·ã§ã³ããéãããé ãããšèŠãªããŸãã å®éããã©ã³ã¶ã¯ã·ã§ã³ãªãã§ãªã¯ãšã¹ããå®è¡ããããšã¯äžå¯èœã§ãã ãããã£ãŠããã®ãããªå°é家ã«ãšã£ãŠãMySQLã¯AUTOCOMMITã¢ãŒãã§æå¹ã«æ©èœããŸãããã®ã¢ãŒãã§ã¯ããå éšãã§ã®ãã©ã³ã¶ã¯ã·ã§ã³åŠçã®æªè³ªãªãã©ã¯ãã£ã¹ããã¹ãŠé ãããŸãã PostgreSQLã§ã¯ãç¹å¥ãªãã©ã°ïŒSET AUTOCOMMITïŒãå«ããããšã«ãããããŒã¿ããŒã¹æäœã«å¯Ÿãããã®ã¢ãããŒããã·ãã¥ã¬ãŒãããå¿ èŠããããŸãã
ç¹ã«èå³æ·±ãã®ã¯ããã©ã³ã¶ã¯ã·ã§ã³ããŒã¿åŠçããµããŒãããªããã©ã³ã¶ã¯ã·ã§ã³å ã§ããŒãã«ãšã³ãžã³ã䜿çšããMySQLã®æ©èœã§ãã ããã§ã¯ãããã¥ã¡ã³ãã®ã¿ãåŒçšã§ããŸãïŒããã©ã³ã¶ã¯ã·ã§ã³å ã§ãã©ã³ã¶ã¯ã·ã§ã³ããŒãã«ãšéãã©ã³ã¶ã¯ã·ã§ã³ããŒãã«ãæå³çã«æ··åšãããŠããªãå Žåããã®ã¡ãã»ãŒãžã®åå ãšããŠæãèããããã®ã¯ããã©ã³ã¶ã¯ã·ã§ã³ã§ãããšæã£ãããŒãã«ãå®éã§ã¯ãªãããšã§ããïŒã
å¯èœã§ããã°ã移è¡åã«ãšã³ãžã³ãäœç³»åããŠãã ããã ããã§ãªãå Žåã¯ãèªåã³ãããã䜿çšããŠç§»åãããããã®ãããªç¶æ³ã§å°ãªããšãåç®äžã®ãã©ã³ã¶ã¯ã·ã§ã³åŠçãæäŸããŠãã ããã ããã¯ééããªãæªããªãããšã¯ãããŸããã
MemoryãšããããŒãã«ãšã³ãžã³ã«ã¯ãç¬èªã®æ®µèœãå¿ èŠã§ãã ãã®ãšã³ãžã³ã®ç¹åŸŽã¯ãããŒã¿ããã£ã¹ã¯ã«ä¿åãããã¡ã¢ãªã«å®å šã«ä¿åããããšã§ãã ã¡ã¢ãªã®éã¯åºå®ãããŠãããããŒã¿ããŒã¹ãµãŒããŒãåèµ·åããããšã«ãã£ãŠã®ã¿å€æŽã§ããèšå®ã«ãã£ãŠèšå®ãããŸãã ãã®ãšã³ãžã³ã®åäœã«é¢é£ãã2ã€ã®ãã¥ã¢ã³ã¹ããããŸãã
ãµã€ãºã®å¶éãè¶ ããããŒãã«ã¯å³åº§ã«ãã£ã¹ã¯ã«ãã¹ã¯ãããããããã£ãªããžã¯ã«ããã£ã«ãªããå Žåã«ãã£ãŠã¯ããŒã¿ããŒã¹ãšäžç·ã«ãªããŸãïŒããã©ãŒãã³ã¹ãæé©åããããã«ã¡ã¢ãªãšã³ãžã³ã䜿çšãããå ŽåïŒã
ååãšããŠããã®ãããªããŒãã«ã«ã¯äžæçãªããŒã¿ãå«ãŸããŸãããããã¯å€±ããã®ã§ã¯ãããŸããã æåã®æ倱ã®åŸãããŒã¿ã¯ããã·ã§ã³ã¯ãªãã£ã«ã«ã§ããã倱ãããšã¯ã§ããªãããšãå€æããŸããã ãããŠãããŒã¿ããŒã¹ãšã¢ããªã±ãŒã·ã§ã³ã®ã¢ãŒããã¯ãã£ã¯ãã§ã«ãããã®ããŒãã«ã«ãã£ãããšãæ€ãä»ãããããŠããããã®çµæã誰ãããããã®ããŒãã«ã§ç¥ãããã«ãªããããŒã¿ããŒã¹ãå®æçã«åèµ·åãããšãããŒãã«ããã£ã¹ã¯æ°žç¶åœ¢åŒã«å€æããã¡ã¢ãªãšåæ§ã®ã·ã£ãŒãããºã ã«å€æãããšããç¹å®ã®ååŒã«å€ãããŸãã
äžè¬ã«ãPostgreSQLèªäœã¯ã¡ã¢ãªç®¡çã®ç¹ã§åçŽã«é©åã§ãããããŒã¿ããŒã¹ã«ååãªéãå²ãåœãŠãããŠããå Žåããã®ãããªããŒãã«ãRAMã«ä¿æããã¢ããªã±ãŒã·ã§ã³ããã®èŠæ±ã«å¿ããŠè¡ãæäŸããããšã¯çŽ æŽãããããšã§ãã ããã§ããããŒãã«ã®ã¯ãŒã¯ããŒããéåžžã«å€§ããå Žåãååãªã¡ã¢ãªããªãå ŽåããŸãã¯æ°žç¶ããŒãã«ã®ã¢ããªã±ãŒã·ã§ã³ãåŠçããæéããŸã£ãããªãå Žåã¯ãããŒã¯ãŒãUNLOGGEDïŒCREATE UNLOGGED TABLE ...ïŒã䜿çšããŠPostgreSQLã§åæ§ã®ããŒãã«ãäœæããããšã§ãã¡ã¢ãªããŒãã«ã®åäœããšãã¥ã¬ãŒãã§ããŸãã ããã¥ã¡ã³ãã®åŒçšïŒ
æå®ããå ŽåãããŒãã«ã¯ãã°ãªãã®ããŒãã«ãšããŠäœæãããŸãã ãã°ãããŠããªãããŒãã«ã«æžã蟌ãŸããããŒã¿ã¯ãå è¡æžã蟌ã¿ãã°ïŒç¬¬29ç« ãåç §ïŒã«æžã蟌ãŸããªããããéåžžã®ããŒãã«ãããå€§å¹ ã«é«éã«ãªããŸãã ãã ããã¯ã©ãã·ã¥ã»ãŒãã§ã¯ãããŸããããã°ã«èšé²ãããŠããªãããŒãã«ã¯ãã¯ã©ãã·ã¥ãŸãã¯ã¯ãªãŒã³ã·ã£ããããŠã³ã®åŸã«èªåçã«åãæšãŠãããŸãã ãã°ã«èšé²ãããŠããªãããŒãã«ã®å 容ãã¹ã¿ã³ãã€ãµãŒããŒã«è€è£œãããŸããã ãã°ã«èšé²ãããŠããªãããŒãã«ã«äœæãããã€ã³ããã¯ã¹ãèªåçã«ãã°ã«èšé²ãããŸããã
ãããã®ç¯çŽ
å€ãã®MySQLã¢ãŒããã¯ãã¯ãäž»ããŒã®æ£ããé 眮ãé¢ä¿é¢ä¿ã®æ£ç¢ºæ§ã®ç¶æãªã©ãéåžžã«éèŠãªããšãå¿ããã¡ã§ããã1ã€ãŸãã¯å¥ã®æŽæ°ã«è¿œå ãããæ°åã®ããã深床ãšç¬Šå·ãéåžžã«æ£ç¢ºã«ç€ºãããšã圌ãã®çŸ©åã§ãããšèããŠããŸãã MySQLã¯éåžžã«å€æ§ãªããŒã¿åïŒintãsmallintãtinyintãªã©ïŒãæäŸããããããã«å¯ŸããŠæ倧æåæ°ãšè² ã®å€ã®æç¡ãæå®ã§ããŸãã ããšãã°ãTINYINTã¯-128ã127ã®å€ãä¿æããUNSIGNED TINYINTã¯0ã255ã®å€ãä¿æããŸãã
åè¿°ã®å»ºç¯å®¶ã決ããŠæãã€ããªãã®ã¯æªæ¥ã§ãã é ããæ©ãããæå®ããããã¬ãŒã ã¯ãŒã¯ã«åãŸããªãå€ããã®ãããªãã£ãŒã«ãã«å°çããMySQLã¯æãè¿ãæå¹ãªå€ã«åãæšãŠãããããã©ã«ãã§ã¯å³å¯ã¢ãŒããç¡å¹ã«ãªããŸãã ãã®ãããªæããã®ããã«ã客芳çã«éèŠã§å®éã®æ°ã®ããã©ãŒãã³ã¹ã€ã³ãžã±ãŒã¿ãŒãã蚱容ãããæ倧å€ã®é«ãå€ãŸã§ãã«ãããªãããããã·ã¹ãã å šäœã®å¹çãäœäžããããŒã¿ããŒã¹ãç¹°ãè¿ã芳å¯ããŸããã
ç¥èã®ãã人ã¯ãåæ§ã«ããéãªã©ã®éèŠãªäœããäŒçµ±çã«ä¿åãã10é²æ°/æ°å€ã¿ã€ãã§ãåæ§ã®ç¶æ³ãçºçããããšããã§ã«æšæž¬ããŠããŸãã ãã®ãããªå Žåãå®è³ªå©çã®æ倱ã«ã€ããŠã¯ãã§ã«è©±ãããããšãã§ããŸãã PostgreSQLã¯ã足ã§ïŒãŸãã¯é ã§ããïŒèªåèªèº«ãæã€æ©äŒã®ãã®ãããªåç©åããå ããæå®ããããå®æ°ããè¶ ããããšãåžžã«èªããŸãã
IGNORE + ON DUPLICATE KEYãæ¿å ¥...æŽæ°
MySQLéçºè ã«æãæãããŠããæ§é ã®ããã€ãã¯ãPostgreSQLã«çŽæ¥é¡äŒŒããŠããŸããã
INSERT IGNOREã®ç¶ç¶çãªäœ¿çšã¯ãããŒã¿ããŒã¹ã¹ããŒãã®èšèšäžã®åé¡ã匷ã瀺åããŠããŸãã ãã ããINSERTãå®è¡ããUNIQUE EXCEPTIONãçºçããå Žåã«ãããã€ã³ã¿ãŒã»ãããããµã€ã¬ã³ãã«ãæ¶ããã¹ãã¢ãããã·ãŒãžã£ãèšè¿°ããããšã§ããã®åäœããšãã¥ã¬ãŒãã§ããŸãã
ON DUPLICATE KEY ... UPDATEããŸãã¯ããããUPSERTïŒUPdate + inSERTïŒã¯ãPostgreSQLã³ãã¥ããã£ã§å¿ èŠãªãæ©èœããšããŠèªèãããŠããŸããã ãã®ãªãªãŒã¹ã¯ãDBMS 9.5ããŒãžã§ã³ã«å²ãåœãŠãããŠããŸãã ãããŸã§ã¯ã次ã®æ§æã§ããããšãã¥ã¬ãŒãã§ããŸãã
-- , UPDATE existing_table ex SET field1 = ex.field1 + up.field1, field2 = up.field2, ⊠FROM updates up WHERE ex.pkey_field1 = up.pkey_field1 AND ex.pkey_field2 = up.pkey_field2 âŠ; -- INSERT INTO existing_table (columns, âŠ) SELECT new.field1, new.field2, ⊠FROM new_data new WHERE NOT EXISTS ( SELECT * FROM existing_table ex WHERE ex.pkey1 = new.pkey1 and ex.pkey2 = new.pkey2 and âŠ; );
MySQLã§æéãæäœãã
ãã®ç®çã®ããã«MySQLã§å©çšå¯èœãªããŒã¿ã®ã¿ã€ãã®æéå€ãäžžããåé¡ã«ã€ããŠã¯ãã§ã«è¿°ã¹ãŸããã ãããšã¯å¥ã«ããã®ãããªæ å ±ãä¿åããããã®ããŸããŸãªå¯èœãªãªãã·ã§ã³ãæ€èšããŸãã ããèªäœã¯ã«ããŽãªãŒçãªåé¡ã§ã¯ãããŸããããã¹ãŠã®åé¡ã¯ãéçºè ãåã®éããç¥ããªãããšã«èµ·å ãããã®çµæãç®ã«èŠããããžãã¯ãªãã«äžåºŠââã«è»œèã«äœ¿çšãããããšã«èµ·å ããŸãã DATETIMEãTIMESTAMPãããã³BIGINTïŒUnixã¿ã€ã ã¹ã¿ã³ãå€çšïŒã䜿çšããŠæå»ãæ ŒçŽããç¶æ³ã¯éåžžã«èŠåçã§ãããã»ãŒ1ç§ããã«èŠ³å¯ãããŸãã
DATETIMEã¯ãã¿ã€ã ãŸãŒã³ãªãã»ãããæ ŒçŽããç¹ã§TIMESTAMPãšç°ãªããŸãã ããã«åºã¥ããŠãPostgreSQLã®é©åãªããŒã¿åïŒã¿ã€ã ãŸãŒã³ã®ãã/ãªãã¿ã€ã ã¹ã¿ã³ãïŒãèšç»ãããªã³ã¶ãã©ã€ã§ã€ã³ããŒããããšãã«ã¿ã€ã ãŸãŒã³ã®ä¿®æ£ãã€ã³ããŒã/æžç®ããæºåãããŸãïŒããŒã¿ããŒã¹ãç¹å®ã®ãã¿ã€ã ãŸãŒã³ãã«ããŒãã³ãŒãã£ã³ã°ãããŠããå Žåãããã³ããŒã¿ã¿ã€ãããã¯ç¡å·®å¥ã«äœ¿çšãããŸãïŒã
åæ§ã«éèŠãªã®ã¯ãbigintãªã©ã®ãã£ãŒã«ãã«UNIXã¿ã€ã ã¹ã¿ã³ããä¿åããåé¡ã§ãã MySQLã«ã¯ãã¿ã€ã ãŸãŒã³ãªãã»ããã«å¯Ÿå¿ããç§æ°ããã®å€ã«è¿œå ãããšããäžå¿«ãªæ £è¡ããããŸãããããã¯ã€ããªãã®ãŒçã«ã¯UTCã®ãŸãŸã«ããå¿ èŠããããŸãã ãã®åäœã¯æšæºã§ã¯ãªããããããŒãžã§ã³9.2以éãPostgreSQLã¯äžå¿«ãªåé¿çã䜿çšããŠEXTRACT SQLã³ã³ã¹ãã©ã¯ãïŒEPOCH FROM TZVALUE :: TIMESTAMP WITH TIME ZONEïŒã®åœ¢åŒã§ã¿ã€ã ãŸãŒã³ã®ãšããã¯ã調æŽããå¿ èŠããããŸããæå®ãããã¿ã€ã ã¹ã¿ã³ãããã®ãšããã¯å€ãã¿ã€ã ãŸãŒã³ã¹ãã¬ãŒãžã䜿çšãã圢åŒã«æ瀺çã«å€æããŸãã
ã¿ã€ã ãŸãŒã³ã®æäœã¯ããšã©ãŒã®ååšãèš±ãããæäœã®1ã€ã§ããããã¯ãã¿ã¹ã¯ãæ¬åœã«éèŠã§ããããã§ãã PostgreSQLã§ã¿ã€ã ãŸãŒã³ãæäœããããã®æ£ããã¢ãããŒãã®èª¬æã¯ã www.depesz.com / 2014/04/04 / how-to-deal-with-timestampsã«ããçŽ æŽãããèšäºã«èšèŒãããŠããŸã ã
ããã¯
å€ãã®å Žåãããã°ã©ãã¯ããŒã¿ããŒã¹ããã¯ãæåã§ç®¡çããããšã奜ã¿ãŸãã å ±æããã¯ãšæä»ããã¯ãæ瀺çã«èšå®ããããããã«æªãããšã«ãããã©ã«ãã®ãã©ã³ã¶ã¯ã·ã§ã³åé¢ã¬ãã«ãå€æŽããŸãã å³å¯ã«èšãã°ããããè¡ãããšã¯å³å¯ã«çŠå¿ã§ãã ããã«ãããããããå®éã«ã¯ãã¢ãŒããã¯ããæŽæ°ãããããŒãã«ã®ãèŽèŠé害è ãããã¯ã«ãã£ãŠæäœã®æŽåæ§ãå®è£ ããããšã決å®ããç¶æ³ããããŸããã åæã«ããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ããã®OLTPããŒããåãããŒãã«ã«éãããããšãå¿é ãã人ã¯ã»ãšãã©ããŸããã§ããã å€ãã®å Žåããã®ãããªè¡åã¯ãéãã©ã³ã¶ã¯ã·ã§ã³ããŒãã«ãšã³ãžã³ã®ååšãŸãã¯ããŒã¿ããŒã¹ãæ¯é ããèšå®ã«é¢ããäžè¬çãªçæ°ã®ããã«ãMySQLãã©ã³ã¶ã¯ã·ã§ã³ãé©çšã§ããªããšããäºå®ããçããŸãã ããšãã°ããã¿ã€ã ã¢ãŠãããå¶éãŸã§ç·©ããããéåžžã®ãã©ã³ã¶ã¯ã·ã§ã³ãé©çšãããªããšããé·ããªã¯ãšã¹ãããããŸãã
移è¡äžã®ãã®åé¡ã«å¯Ÿããæåã®è§£æ±ºçã¯ãPostgreSQLã§æ£çŽãªãã©ã³ã¶ã¯ã·ã§ã³ã䜿çšããŠã¿ãããšã§ããããã¯ãåæå®è¡æ§ã®é«ãç¶æ³ã«å¯ŸåŠããå¯èœæ§ãé«ãã§ãã çµå±ã®ãšãããããã¯ãããžãã¯ã®äžå¯æ¬ ãªéšåã§ããå Žåã¯ãã¢ããã€ã¶ãªãŒããã¯ã¡ã«ããºã ãæ€èšããŠãã ããã ããããã¢ããã€ã¶ãªããã¯ã¯ä»®æ³çãªãã®ã§ãããç©çããŒã¿ã®ãããã¯ã«ã¯ã€ãªãããŸããã ãã©ã³ã¶ã¯ã·ã§ã³å ã§ããããé©åã«äœ¿çšãããšããªã¹ã¯ãå€§å¹ ã«äœäžããDBMSã®ãªãœãŒã¹ãšããã©ãŒãã³ã¹ãããç¯çŽãããŸãã ãããããã¡ããã誰ãããªãã®é ã§èããŠãã¢ããªã±ãŒã·ã§ã³ã³ãŒãã§ããã¯ãé©çšãããã¹ãŠã®ãã±ãŒã¹ãã泚ææ·±ãç£èŠããå¿ èŠæ§ããã£ã³ã»ã«ããŸããã
ãããã«
MySQLããŒã¿ããŒã¹ãµãŒããŒã§çºçããå¯èœæ§ã®ããé©ãã¹ãããšã®ã»ãã®äžéšã®ã¿ã調ã¹ãŸããã MySQLã®è€éãªã¬ããªã±ãŒã·ã§ã³ãšãPGã䜿çšããŠè€è£œããæ¹æ³ã«ã€ããŠãéåžžã«é·ãéè°è«ããããšãã§ããŸããããšãã°ã次ã®PG Day'15 Russiaã§Oleg Tsarevãè¡ããŸãã æè¯ã®å Žåãåé¡ã¯ãããã¹ã¿ã³ãã€ã¡ã«ããºã ã䜿çšããŠè§£æ±ºãããŸãã ææªã®å ŽåããµããŒããšæäœã«ãããŠSlonyã®ãããªéèŠãªããŒã«ãç¿åŸããå¿ èŠããããŸãïŒ
ãããã®äŸãã移è¡ã®ã¿ã¹ã¯ãæ¢åã®ããŒã«ã䜿çšããè€éã§å®è³ªçã«è§£æ±ºäžå¯èœãªããã»ã¹ã§ããçç±ã説æããŠãããããšãé¡ã£ãŠããŸãã ææ ®æ·±ããæåã®ã¢ãããŒãã®ã¿ã§åäœããããšãä¿èšŒãããå€ãè»äºã®ç¥æµã¯ãããªãã®ããŒã¿ãç¥ã£ãŠããŸããã