ãå³è§£ã§æ¯èŒãSQL vs NoSQL â ããŒã¿ããŒã¹ã®2倧朮æµã培åºè§£èª¬
ããŒã¿ããŒã¹ã«ã¯ãSQLããšãNoSQLããããã£ãŠèãããã ãã©ãäœãéãã®ïŒ
ãã£ããèšããšãSQLã¯ãExcelã®è¡šã¿ããã«ãã£ã¡ãè¡ãšåã§ç®¡çããããŒã¿ããŒã¹ãã§ãNoSQLã¯ããã£ãšèªç±ãªåœ¢ã§ããŒã¿ãå ¥ããããããŒã¿ããŒã¹ãã ããSQLã¯ãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ïŒRDBïŒãšãåŒã°ããŠããŠãããŒã¿ãå ¥ããåã«ããã®åã«ã¯ããããããŒã¿ãå ¥ãããã£ãŠããã¹ããŒããæ±ºããŠããå¿ èŠããããã ã
ã¹ããŒããæ±ºããã£ãŠãã¡ãã£ãšããã©ããããâŠãNoSQLãªãèªç±ã«å ¥ãããããªããå šéšNoSQLã§ãããªãïŒ
ãã質åã ãããããã«NoSQLã¯æè»ã ãã©ããã®èªç±ãã«ã¯ãã¬ãŒããªãããããã ãSQLããŒã¿ããŒã¹ã¯ãACIDãã£ãŠããä»çµã¿ã§ãããŒã¿ã®æŽåæ§ãã¬ãããªå®ã£ãŠããããããšãã°éè¡ã®ééã§ãAããã®å£åº§ããåŒããã®ã«Bããã®å£åº§ã«è¶³ãããŠãªãããªããŠããšãèµ·ããªãããã«ä¿èšŒããŠããããã ãã
ACIDã¯ãAtomicityïŒååæ§ïŒã»ConsistencyïŒäžè²«æ§ïŒã»IsolationïŒå颿§ïŒã»DurabilityïŒèä¹ æ§ïŒãã®é æåã ããäžé£ã®åŠçãå šéšæåãããå šéšå€±æããããäžéå端ãªç¶æ ã«ãªããªãããšãä¿èšŒãããã ãNoSQLã®å€ãã¯ä»£ããã«ãBASEãã£ãŠããèãæ¹ãæ¡çšããŠããŠããæçµçã«ã¯ããŒã¿ãäžèŽãããã©ãäžç¬ã ãå€ãããŒã¿ãèŠããããšãããããã£ãŠããç·©ãã®ä¿èšŒãªãã ãã
NoSQLãåŸæãªã®ã¯ã倧éã®ããŒã¿ãé«éã«ãã°ãããããããŒã¿ã®åœ¢ããã©ãã©ãããµãŒããŒã暪ã«å¢ãããŠã¹ã±ãŒã«ããããã£ãŠããã±ãŒã¹ã ããããšãã°SNSã®æçš¿ããŒã¿ã¯ãããã¹ãã ãã®äººãããã°ç»åä»ãã»åç»ä»ãã®äººããããããããããããŒã¿æ§é ããã©ãã©ãªãã®ã¯NoSQLã®ããã¥ã¡ã³ãåãåããŠãããã ã
ããµãŒããŒã暪ã«å¢ãããã£ãŠã©ãããããšïŒ
ã¹ã±ãŒãªã³ã°ã«ã¯2çš®é¡ãã£ãŠããSQLãåŸæãªãåçŽã¹ã±ãŒãªã³ã°ãã¯ã1å°ã®ãµãŒããŒã®CPUãã¡ã¢ãªã匷åããæ¹æ³ãNoSQLãåŸæãªãæ°Žå¹³ã¹ã±ãŒãªã³ã°ãã¯ããµãŒããŒã®å°æ°ãå¢ãããŠããŒã¿ã忣ãããæ¹æ³ã ããæ°Žå¹³ã¹ã±ãŒãªã³ã°ã®ã»ããçè«äžã¯ç¡éã«æ¡åŒµã§ãããããTwitterãNetflixã¿ãããªè¶ å€§èŠæš¡ãµãŒãã¹ã§ã¯NoSQLãæŽ»èºããŠãããã ã
代衚çãªããŒã¿ããŒã¹ã£ãŠäœãããã®ïŒ
SQLç³»ã ãšãMySQLããPostgreSQLããOracle DatabaseããSQL Serverãããããæåã ããNoSQLç³»ã¯çš®é¡ãå€ããŠãããã¥ã¡ã³ãåã®ãMongoDBããããŒããªã¥ãŒåã®ãRedisããDynamoDBããã«ã©ã æåã®ãCassandraããã°ã©ãåã®ãNeo4jããªãããããããNoSQLã£ãŠäžå£ã«èšã£ãŠãäžèº«ã¯ããªãéããã ã
ãããªã«çš®é¡ããããã ãâŠãçµå±ãã©ã£ã¡ãéžã¹ã°ããã®ïŒ
å€æåºæºã¯ãããªæãã ããããŒã¿ã®é¢ä¿æ§ãè€éã§æŽåæ§ã倧äºãªã â SQLã倧éããŒã¿ãé«éåŠçããããã¹ããŒããé »ç¹ã«å€ãããªã â NoSQLãå®ã¯æè¿ã¯ãäž¡æ¹äœ¿ããã®ãäž»æµã§ããŠãŒã¶ãŒæ å ±ãæ±ºæžã¯SQLã«ããã°ãã»ãã·ã§ã³æ å ±ã¯NoSQLã«ãã£ãŠãããµãã«äœ¿ãåããã®ããã¹ããã©ã¯ãã£ã¹ãªãã ã
äž¡æ¹äœ¿ãã®ãæ®éãªãã ãïŒã§ãæè¿ã¯ãNewSQLãã£ãŠããã®ãèããããšãããïŒ
ããç¥ã£ãŠããïŒNewSQLã¯SQLã®æŽåæ§ãšNoSQLã®ã¹ã±ãŒã©ããªãã£ãäž¡ç«ããããšããããŒã¿ããŒã¹ã ããGoogle ã®ãSpannerãããCockroachDBããTiDBãã代衚äŸã ããACIDãã©ã³ã¶ã¯ã·ã§ã³ãä¿ã¡ãªããæ°Žå¹³ã¹ã±ãŒãªã³ã°ã§ãããã ããã ãéçšã³ã¹ããé«ãã£ãããã¬ã€ãã³ã·ã®ãã¬ãŒããªãããã£ãããããããéã®åŒŸäžžã§ã¯ãªããã
ãžãããããã©ã³ã®ãšã³ãžãã¢ã§ãéžæãééããããšã£ãŠããã®ïŒ
å®ã¯ãã£ãããããã ãæåãªå€±æäŸã ãšãåæã®TwitterãMySQLã§éçãè¿ããŠCassandraã«ç§»è¡ããããéã«UberãPostgreSQLããMySQLã«åãæ¿ããã±ãŒã¹ããããé¢çœãã®ã¯ãPostgreSQLããJSONBãåã§ããã¥ã¡ã³ãæ ŒçŽããµããŒãããããMongoDBãACIDãã©ã³ã¶ã¯ã·ã§ã³ã远å ããããšãSQLãšNoSQLã®å¢çãã©ãã©ãææ§ã«ãªã£ãŠããŠããããšã ãããSQLãNoSQLããã§ã¯ãªããã©ã®ããŒã¿ããŒã¹ããã®ã¯ãŒã¯ããŒãã«æé©ããã§èããã®ããä»ã®ããã®éžã³æ¹ã ãã