æ¬æå°ä»åæºMySQLçåºæ¯åºåï¼ç®è¿°ä¸ä¸éçç½ç«ç访é®éè¶æ¥è¶å¤§ï¼æ°æ®åºé¨ç½²çæ¼è¿è¿ç¨ï¼å°ä¸ºä»ä¹è¦ç¨MySQLçå¿ è¦æ§ã
大æ°æ®æ¶ä»£çæ°æ®æ3Vçç¹ç¹ï¼æµ·éVolumeãå¤æ ·Varietyãå®æ¶Velocityã
äºèç½ç½ç«éæ±ç3é«çç¹ç¹ï¼é«å¹¶åãé«å¯æ©ãé«æ§è½ã
ä¸ãåæºMySql
å½ä¸ä¸ªç½ç«ç访é®éä¸å¤§æ¶ï¼ç¨å个æ°æ®åºå®å ¨å¯ä»¥è½»æ¾åºä»ã
å¨é£ä¸ªæ¶åï¼æ´å¤çé½æ¯éæç½é¡µï¼å¨æ交äºç±»åçç½ç«ä¸å¤ã
ä¸è¿°æ¶æä¸ï¼æ们æ¥ççæ°æ®åå¨çç¶é¢æ¯ä»ä¹ï¼
1.æ°æ®éçæ»å¤§å° ä¸ä¸ªæºå¨æ¾ä¸ä¸æ¶
2.æ°æ®çç´¢å¼ï¼B+ Treeï¼ä¸ä¸ªæºå¨çå
åæ¾ä¸ä¸æ¶
3.访é®é(读åæ··å)ä¸ä¸ªå®ä¾ä¸è½æ¿å
å¦æ满足äºä¸è¿°1 or 3个ï¼è¿å......
äºãMemcachedï¼ç¼åï¼+Mysql+åç´æå
åæ¥ï¼éç访é®éçä¸åï¼å ä¹å¤§é¨å使ç¨MySQLæ¶æçç½ç«å¨æ°æ®åºä¸é½å¼å§åºç°äºæ§è½é®é¢ï¼webç¨åºä¸åä»
ä»
ä¸æ³¨å¨åè½ä¸ï¼åæ¶ä¹å¨è¿½æ±æ§è½ãç¨åºå们å¼å§å¤§éç使ç¨ç¼åææ¯æ¥ç¼è§£æ°æ®åºçååï¼ä¼åæ°æ®åºçç»æåç´¢å¼ãå¼å§æ¯è¾æµè¡çæ¯éè¿æ件ç¼åæ¥ç¼è§£æ°æ®åºååï¼ä½æ¯å½è®¿é®é继ç»å¢å¤§çæ¶åï¼å¤å°webæºå¨éè¿æ件ç¼åä¸è½å
±äº«ï¼å¤§éçå°æ件ç¼åä¹å¸¦äºäºæ¯è¾é«çIOååãå¨è¿ä¸ªæ¶åï¼Memcachedå°±èªç¶çæ为ä¸ä¸ªé常æ¶å°çææ¯äº§åã
Memcachedä½ä¸ºä¸ä¸ªç¬ç«çåå¸å¼çç¼åæå¡å¨ï¼ä¸ºå¤ä¸ªwebæå¡å¨æä¾äºä¸ä¸ªå ±äº«çé«æ§è½ç¼åæå¡ï¼å¨Memcachedæå¡å¨ä¸ï¼ååå±äºæ ¹æ®hashç®æ³æ¥è¿è¡å¤å°Memcachedç¼åæå¡çæ©å±ï¼ç¶åååºç°äºä¸è´æ§hashæ¥è§£å³å¢å æåå°ç¼åæå¡å¨å¯¼è´éæ°hash带æ¥ç大éç¼å失æçå¼ç«¯
ä¸ãMySql主ä»å¤å¶è¯»åå离
ç±äºæ°æ®åºçåå
¥ååå¢å ï¼Memcachedåªè½ç¼è§£æ°æ®åºç读åååã读åéä¸å¨ä¸ä¸ªæ°æ®åºä¸è®©æ°æ®åºä¸å ªéè´ï¼å¤§é¨åç½ç«å¼å§ä½¿ç¨ä¸»ä»å¤å¶ææ¯æ¥è¾¾å°è¯»åå离ï¼ä»¥æé«è¯»åæ§è½å读åºçå¯æ©å±æ§ãMysqlçmaster-slave模å¼æ为è¿ä¸ªæ¶åçç½ç«æ é
äºã
åãååºå表+æ°´å¹³æå+Mysqlé群
å¨Memcachedçé«éç¼åï¼MySQLç主ä»å¤å¶ï¼è¯»åå离çåºç¡ä¹ä¸ï¼è¿æ¶MySQL主åºçåååå¼å§åºç°ç¶é¢ï¼èæ°æ®éçæç»çå¢ï¼ç±äºMyISAM使ç¨è¡¨éï¼å¨é«å¹¶åä¸ä¼åºç°ä¸¥éçéé®é¢ï¼å¤§éçé«å¹¶åMySQLåºç¨å¼å§ä½¿ç¨InnoDBå¼æ代æ¿MyISAMã
åæ¶ï¼å¼å§æµè¡ä½¿ç¨å表ååºæ¥ç¼è§£ååååæ°æ®å¢é¿çæ©å±é®é¢ãè¿ä¸ªæ¶åï¼å表ååºæäºä¸ä¸ªçé¨ææ¯ï¼æ¯é¢è¯ççé¨é®é¢ä¹æ¯ä¸ç讨论ççé¨ææ¯é®é¢ãä¹å°±å¨è¿ä¸ªæ¶åï¼MySQLæ¨åºäºè¿ä¸å¤ªç¨³å®ç表ååºï¼è¿ä¹ç»ææ¯å®åä¸è¬çå
¬å¸å¸¦æ¥äºå¸æãè½ç¶MySQLæ¨åºäºMySQL Clusteré群ï¼ä½æ§è½ä¹ä¸è½å¾å¥½æ»¡è¶³äºèç½çè¦æ±ï¼åªæ¯å¨é«å¯é æ§ä¸æä¾äºé常大çä¿è¯ã
äºãMysqlçæ©å±æ§ç¶é¢
MySQLæ°æ®åºä¹ç»å¸¸åå¨ä¸äºå¤§ææ¬å段ï¼å¯¼è´æ°æ®åºè¡¨é常ç大ï¼å¨åæ°æ®åºæ¢å¤çæ¶å就导è´é常çæ
¢ï¼ä¸å®¹æå¿«éæ¢å¤æ°æ®åºãæ¯å¦1000ä¸4KB大å°çææ¬å°±æ¥è¿40GBç大å°ï¼å¦æè½æè¿äºæ°æ®ä»MySQLçå»ï¼MySQLå°åå¾é常çå°ãå
³ç³»æ°æ®åºå¾å¼ºå¤§ï¼ä½æ¯å®å¹¶ä¸è½å¾å¥½çåºä»ææçåºç¨åºæ¯ãMySQLçæ©å±æ§å·®ï¼éè¦å¤æçææ¯æ¥å®ç°ï¼ï¼å¤§æ°æ®ä¸IOåå大ï¼è¡¨ç»ææ´æ¹å°é¾ï¼æ£æ¯å½å使ç¨MySQLçå¼å人åé¢ä¸´çé®é¢ã
å ã为ä»ä¹ç¨Nosql
ä»å¤©æ们å¯ä»¥éè¿ç¬¬ä¸æ¹å¹³å°ï¼å¦ï¼Google,Facebookçï¼å¯ä»¥å¾å®¹æç访é®åæåæ°æ®ãç¨æ·ç个人信æ¯ï¼ç¤¾äº¤ç½ç»ï¼å°çä½ç½®ï¼ç¨æ·çæçæ°æ®åç¨æ·æä½æ¥å¿å·²ç»æåçå¢å ãæ们å¦æè¦å¯¹è¿äºç¨æ·æ°æ®è¿è¡ææï¼é£SQLæ°æ®åºå·²ç»ä¸éåè¿äºåºç¨äº, NoSQLæ°æ®åºçåå±ä¹å´è½å¾å¥½çå¤çè¿äºå¤§çæ°æ®ãä¸é¢ç»å¤§å®¶çä¸ä¸ï¼webåºç¨æ°æ®éçå¢é¿å¾ï¼
ä¸ãNosqlæ¯ä»ä¹
NoSQL(NoSQL = Not Only SQL )ï¼æå³âä¸ä»
ä»
æ¯SQLâï¼
æ³æéå
³ç³»åçæ°æ®åºãéçäºèç½web2.0ç½ç«çå
´èµ·ï¼ä¼ ç»çå
³ç³»æ°æ®åºå¨åºä»web2.0ç½ç«ï¼ç¹å«æ¯è¶
大è§æ¨¡åé«å¹¶åçSNSç±»åçweb2.0纯å¨æç½ç«å·²ç»æ¾å¾åä¸ä»å¿ï¼æ´é²äºå¾å¤é¾ä»¥å
æçé®é¢ï¼èéå
³ç³»åçæ°æ®åºåç±äºå
¶æ¬èº«çç¹ç¹å¾å°äºé常è¿
éçåå±ãNoSQLæ°æ®åºç产çå°±æ¯ä¸ºäºè§£å³å¤§è§æ¨¡æ°æ®éåå¤éæ°æ®ç§ç±»å¸¦æ¥çææï¼å°¤å
¶æ¯å¤§æ°æ®åºç¨é¾é¢ï¼å
æ¬è¶
大è§æ¨¡æ°æ®çåå¨ã
ï¼ä¾å¦è°·ææFacebookæ¯å¤©ä¸ºä»ä»¬çç¨æ·æ¶éä¸äº¿æ¯ç¹çæ°æ®ï¼ãè¿äºç±»åçæ°æ®åå¨ä¸éè¦åºå®ç模å¼ï¼æ éå¤ä½æä½å°±å¯ä»¥æ¨ªåæ©å±ã
å «ãNosqlçä¼å¿
1.ææ©å±
NoSQLæ°æ®åºç§ç±»ç¹å¤ï¼ä½æ¯ä¸ä¸ªå ±åçç¹ç¹é½æ¯å»æå ³ç³»æ°æ®åºçå ³ç³»åç¹æ§ã
æ°æ®ä¹é´æ å ³ç³»ï¼è¿æ ·å°±é常容ææ©å±ãä¹æ å½¢ä¹é´ï¼å¨æ¶æçå±é¢ä¸å¸¦æ¥äºå¯æ©å±çè½åã
2.大æ°æ®éï¼é«æ§è½
NoSQLæ°æ®åºé½å ·æé常é«ç读åæ§è½ï¼å°¤å ¶å¨å¤§æ°æ®éä¸ï¼åæ ·è¡¨ç°ä¼ç§ã
è¿å¾çäºå®çæ å ³ç³»æ§ï¼æ°æ®åºçç»æç®åãä¸è¬MySQL使ç¨Query Cacheï¼æ¯æ¬¡è¡¨çæ´æ°Cache就失æï¼æ¯ä¸ç§å¤§ç²åº¦çCacheï¼å¨é对web2.0ç交äºé¢ç¹çåºç¨ï¼Cacheæ§è½ä¸é«ãèNoSQLçCacheæ¯è®°å½çº§çï¼æ¯ä¸ç§ç»ç²åº¦çCacheï¼æ以NoSQLå¨è¿ä¸ªå±é¢ä¸æ¥è¯´å°±è¦æ§è½é«å¾å¤äºã
3.å¤æ ·çµæ´»çæ°æ®æ¨¡å
NoSQLæ éäºå 为è¦åå¨çæ°æ®å»ºç«å段ï¼éæ¶å¯ä»¥åå¨èªå®ä¹çæ°æ®æ ¼å¼ãèå¨å ³ç³»æ°æ®åºéï¼å¢å å段æ¯ä¸ä»¶é常麻ç¦çäºæ ãå¦ææ¯é常大æ°æ®éç表ï¼å¢å å段ç®ç´å°±æ¯ä¸ä¸ªå©æ¢¦ã
ä¹ãNosqlæ°æ®åºçå大åç±»
é®å¼(Key-Value)åå¨
ååå¨
ææ¡£åå¨
å¾å½¢åå¨
常è§çæï¼RedisãMemcacheãMongoDBï¼è¿éå°±ä¸ä¸ ä¸ ä»ç»äºã