¡¾±àÕß°´¡¿TiDB ÊǹúÄÚ PingCAP ÍŶӿª·¢µÄÒ»¸ö·Ö²¼Ê½ SQL Êý¾Ý¿â¡£ÆäÁé¸ÐÀ´×ÔÓÚ Google µÄ F1£¬TiDB Ö§³Ö°üÀ¨´«Í³ RDBMS ºÍ NoSQL µÄÌØÐÔ¡£ÔÚ¹úÄÚITOM ¹ÜÀíÆ½Ì¨OneAPM ¾Ù°ìµÄ¼¼Êõ¹«¿ª¿ÎÖУ¬TiDBµÄ¸ß¼¶¹¤³ÌʦÁõÆæ´ÓHBaseÌØÐÔ¡¢TiDBµÄÓÅÊÆºÍϵͳ¼Ü¹¹µÈ·½Ãæ½øÐÐÁËÏêϸ²ûÊö¡£ÒÔÏÂΪÑݽ²ÕûÀí£º
HBase¼ò½é
ÖÚËùÖÜÖª£¬ÔÚSQL·½Ãæ´¦ÓÚ¶¥¼¶µÄÓÐÁ½¸ö¹«Ë¾£¬Ò»¸öÊÇOracle£¬ËûÃÇÒѾ»ýÀÛÁË´óÁ¿µÄ¾Ñ飬ÁíÒ»¸öÊǹȸ裬¹È¸è F1ÔÚ2012Äê·¢²¼ÁËһƪÂÛÎÄ£¬¸öÈËÈÏΪËüÊÇÈ«Çò×îÓÅÐãµÄSQL OLTPÊý¾Ý¿â¡£
1978Äê×óÓÒ£¬Êý¾Ý¿â¸Õ¸Õ·¢Õ¹Ê±³öÏÖÁËSQL RDBMS¡£2000Äê×óÓÒ£¬¹úÄÚ¿ªÊ¼Á÷Ðл¥ÁªÍø£¬»¥ÁªÍø¶ÔOracleÊý¾Ý¿âÒ²²úÉú½Ï´óµÄ³å»÷¡£ÏÖÔÚ£¬´«Í³µÄÊý¾Ý¿â´ó²¿·ÖÊǼ¯ÖÐÔÚ´«Í³ÁìÓò£¬»¥ÁªÍø·½ÃæÓõñȽ϶àµÄÊÇMySQL£¬Æä´ÎHBaseµÈ NoSQL Ò²ÎüÒýÁË´óÁ¿µÄÓû§¡£
Ϊʲô»á³öÏÖNoSQL£¿×ʼËùÓÐÈ˶¼ÓÃSQL Database£¬ÄÇʱ±È½Ï¸ß¶ËÓÐOracle£¬¿ªÔ´µÄ»¹ÓÐMySQL¡¢PostgreSQL¡£¿ÉÊÇËæ×ÅÒµÎñµÄѸËÙ·¢Õ¹£¬Êý¾Ý¿â³ÉΪÁËÆ¿¾±£¬ÓÚÊÇ´ÙʹÁËNoSQLµÄµ®Éú£¬NoSQL½«Scale·ÅÔÚµÚһλ¡£Èç¹ûÒµÎñ¿ìËÙ·¢Õ¹£¬À©ÈÝ»á³ÉΪؽ´ý½â¾öµÄÊ×ÒªÎÊÌâ¡£Õâʱ£¬´ó¶àÊýÈË»áÑ¡Ôñ·ÅÆúÊÂÎñÒ»ÖÂÐÔ¡£Ê²Ã´ÊÇÒ»ÖÂÐÔ£¿±ÈÈçʹÓÃ΢ÐÅʱ£¬Èç¹ûÎÒ¼ÓÄãΪºÃÓÑ£¬ÕâÊÇÒ»¸öË«Ïò¹ØÏµ£¬¶ÔÓ¦µ½Êý¾Ý¿âÖÐÖÁÉÙÊÇÁ½¸ö²Ù×÷£¬µÚÒ»ÊÇÔÚºÃÓÑÁбíÀï°ÑÄã¼Ó½øÀ´£¬µÚ¶þ¸öÊÇÄãµÄºÃÓÑÁбíÀï°ÑÎÒ¼Ó½øÈ¥¡£Èç¹ûÕâÁ½¸öÁбíµÄÊý¾Ý¿â·ÅÔÚ²»Í¬µÄ»úÆ÷ÉÏ£¬¾ÍÐèÒª±£Ö¤Ò»ÖÂÐÔ¡£·ñÔò¿ÉÄÜ»á³öÏÖÎÒÊÇÄãµÄºÃÓÑ£¬µ«ÄãµÄºÃÓÑÖÐÈ´ÕÒ²»µ½ÎÒµÄÕâÖÖÇé¿ö¡£µ«ÕâÖмä¿ÉÄÜ»á³öÏÖ¶àÖÖÇé¿ö£¬±ÈÈçÎÒ°ÑÄã¼ÓΪºÃÓÑ£¬È»ºóÐÞ¸ÄÊý¾ÝµÄʱºòCrushµôÁË£¬Õâ¸öʱºò´«Í³·½°¸ÊÇ»áÒýÈëÒ»¸öÏûÏ¢¶ÓÁУ¬ÓеϹÐèÒª×öһЩ²¹³¥£¬ÕâЩÎÊÌâÔÚNoSQLÀï´¦ÀíÆðÀ´Ïà¶ÔÂé·³¡£
¹úÄÚ×î´óµÄHBaseʹÓÃÕßÊÇСÃ×¹«Ë¾£¬Óм¸¸öHBaseµÄCommitter£¬ËùÒÔ¾¹ýһЩÐ޸ĺó¿ÉÒÔÖ§³Ö·Ö²¼Ê½ÊÂÎñ£¬ÓÚÊÇÄܹ»½â¾ö֮ǰµÄÎÊÌ⡣ΪʲôÔÚÃæÁÙÖî¶àÑ¡Ôñʱ£¬Ð¡Ã×»áÑ¡ÔñHBaseÄØ£¿¾ÍĿǰÇé¿öÀ´Ëµ£¬Ö÷Òª»¹ÊǼ¼ÊõÑ¡ÐͺÍÈ˲Ŵ¢±¸ÉϵĿ¼ÂÇ¡£MongoDB´ó¼ÒÓ¦¸Ã²»Ä°Éú£¬µ«Óõ½Ò»¶¨³Ì¶Èºó£¬×Ü»á³öÏÖ¸÷ÖÖÎÊÌ⣬ÉõÖÁÓÐÎÄÕºôÓõ´ó¼Ò·ÅÆúMongoDB¡£µ«ËùÓÐÊý¾Ý¿â¶¼²»ÊÇ¡°Ê®È«Ê®ÃÀ¡±µÄ£¬Ã»ÓÐ×îºÃ£¬Ñ¡Ôñ×îÊʺϵÄÓÈÎªÖØÒª¡£
ºÜ¶àʱºò²úÆ·¶¼ÓÐÆäÌØÐÔ£¬ÔÚÂú×ãÆäÌØÐÔ»òÕß¹æ¸ñµÄÇé¿öÏ£¬Ê¹ÓÃÆðÀ´¿ÉÄܷdz£Ë³ÊÖ£¬·ñÔòʮ֮°Ë¾Å¶¼Óöµ½¸÷ÖÖÂé·³¡£±ÈÈçСÃ×ʹÓÃHBase¾Í·Ç³£Ë³ÊÖ£¬µ«ÆäËûµÄ¹«Ë¾Ôò²»Ò»¶¨¡£µÀÀíºÜ¼òµ¥£¬Èç¹û²»ÊìϤÆäʹÓó¡¾°£¬Ò²²»ÖªµÀÔÚÏàÓ¦³¡¾°ÏÂÅäʲô²ÎÊý£¬ËùÒÔ»á³öÏÖ¸÷ÖÖ¸÷ÑùµÄÎÊÌâ¡£

ÊÂʵÉÏ£¬HBaseÓзdz£ºÃµÄÌØÐÔ£¬Ä¿Ç°ÔÚСÃ×¹«Ë¾¿ÉÒÔÿÃëÅÜÒ»°ÙÍòOPS£¬×î½üPinterest¹«²¼ËûÃǵÄHBaseÿÃë¿ÉÒÔÅÜÈý°ÙÍò¸öOPS£¬Õâ¸öÊýÁ¿¼¶¿ÉÒÔÔ¶³¬ºÜ¶à»¥ÁªÍø¹«Ë¾¡£HBaseÔÚ¶ÁдһÖÂÐÔ·½Ãæ·Ç³£³öÉ«£¬ÓкܺõÄ×Ô¶¯ScaleµÄÄÜÁ¦£¬Í¨¹ýBlock CacheºÍBloom Filters¿ÉÒԺܺõĽâ¾ö²éѯÎÊÌ⣬ÊÇ·ñÔÚ´ÅÅÌÉÏÒ²¿ÉÒÔͨ¹ýBloom FiltersÀ´Åж¨¡£
ÁíÒ»·½Ã棬Oracle°ÑÒ»²¿·ÖÂß¼»á·ÅÔÚCPU/Ó²¼þÀ¶ÔÓ¦µÄHBaseÒ²»á°ÑÒ»²¿·ÖÂß¼ÏÂÍÆµ½¶ÔÓ¦µÄRegionServer ÉÏ¡£¶ÔÓÚÒ»¸ö·Ö²¼ÏµÍ³À´Ëµ£¬Èç¹ûÐèÒª²éѯһ¸öÌõ¼þ£¬¿ÉÒÔÖ±½Ó°ÑÕâ¸ö¼òµ¥µ÷½ÚÍÆµ½¶ÔÓ¦µÄRegionServerÉÏÖ´ÐС£ÔÙ±ÈÈçÇóºÍÔËË㣬ÏÖÔÚÓÐÒ»°ÙÒÚÊý¾Ý£¬ÉõÖÁһǧÒÚÌõÊý¾Ý£¬·Ö²¼ÔÚ10¸ö½ÚµãÉÏ£¬×î¿ìµÄÇóºÍ·½·¨ÊÇÈÃËùÓнڵãͬʱÔËË㣬½«Õâ¸öÌõ¼þÏÂÍÆµÃµ½ËùÓжÔÓ¦Êý¾ÝµÄºÍ£¬×îºóÊÕ¼¯µ½10¸öÊý¾ÝµÄºÍ¼´¿É¡£Æäʵ»¹¿ÉÒÔ¼ÌÐøÍùÏÂÍÆ£¬ÕâÊDZȽϸ´ÔÓµÄÊý¾Ý¿âÓÅ»¯¼¼Êõ£¬Êµ¼ÊÇé¿ö»¹»á¸ü¸´ÔÓ¡£ÕâÔÚ HBase ÀïÃæÒÀÀµ Coprocessor À´ÊµÏÖ¡£
´ó¼ÒÓ¦¸Ã¶ÔMVCC±È½ÏÊìϤ£¬Ò²¾ÍÊÇ¶à°æ±¾£¬ËüµÄÓŵãÔÚÓÚ¿ÉÒÔ¶à´Î¶ÁÈ¡¶ø²»»áblock¡£È»ºó»¹ÓÐÒ»¸öºÜºÃµÄÌØÐÔ£¬¼ÙÉèÄãÓõÄDatabase£¬MVCCÔÚÄãûÓÐ×öcompaction֮ǰ¿ÉÒԻص½ÈκÎʱ¼äµÄÊý¾Ý¡£ÏÖÔÚÔÆ·þÎñÉÏÒ²¿ÉÒÔÿ¸ô°ëСʱ×öÒ»´Î¿ìÕÕ£¬Êµ¼ÊÉÏÈç¹ûʹÓÃMVCC»Øµ½ÈÎÒâÒ»ÃëµÄ»°£¬¿ÉÒÔÍêÈ«²»ÐèÒª¿ìÕÕ¡£
TiDBµÄÓÅÊÆ
ÏÂÃæÔÙ½éÉÜÒ»ÏÂÎÒÃǵIJúÆ· TiDB£¬TiÊÇÔªËØÖÜÆÚ±íÀïµÄÔªËØ¡£´ó¼ÒÈç¹ûÁ˽âÎÒÃÇÍŶӵijÌÐòÔ±£¬¾ÍÖªµÀËûÃǶ¼±È½Ï Geek£¬È¡Ãû×ÖҪôÔÚÏ£À°Éñ»°Àïѡһ¸öÉñµÄÃû×Ö£¬»òÕßÔÚÊýѧÀïÕÒÒ»¸öÏ£À°×Öĸ£¬ µ«ÊÇ¿´ÁËһȦ£¬ºÃ¿Ó¶¼ÒѾ±»Õ¼ÉÏÁË¡£ÓÚÊÇ£¬ÎÒÃÇÔÚ»¯Ñ§ÔªËØÖÜÆÚ±íÀïÕÒÁËÒ»¸ö½ðÊô×÷ΪÏîÄ¿Ãû³Æ£¬¶ÔÓÚDatabase¶øÑÔ£¬Ëü±ØÐëÊǸßËÙÎȶ¨µÄ£¬¸ÕºÃîѽðÊôÓкÜÇ¿µÄ·À¸¯Ê´ÐÔ£¬ËùÒÔÑ¡ÔñÁËîÑ£¨Ti£©¡£

ÒòΪTiDBµÄÄ¿±êÊǹȸèF1£¬ËùÒÔ×ÔÈ»»áÂú×ãÒÔÉÏÌØÐÔ¡£Ê×ÏÈÊÇ¿ÉÒÔÂú×ã·Ö²¼Ê½Ò»Ö£¬Ò²¾ÍÊÇ˵¶ÔÓÚÓ¦ÓÃÀ´Ëµ£¬²»ÓùØÐĺóÃæ·Ö³É¶àÉÙ¸ö»úÆ÷£¬ÊÂÎñµÄÒ»ÖÂÐÔÊDZØÐë±£Ö¤µÄ£¬±ÈÈçÎÒÃÇ֮ǰÌáµ½µÄA¹Ø×¢B£¬Á½¸ö»¥Ïà¼ÓºÃÓÑ»òÕßתÕÊ£¬¿ÉÒÔÖ±½ÓÀûÓÃÒ»ÌõSQL¸ã¶¨£¬¶øÎÞÐèµ£ÐÄÖмä¹ý³Ì¡£ÁíÍâÒ»¸öÌØÐÔÊǼæÈÝMySQLÐÒ飬¹úÄÚ´ó¸ÅÓÐ70% µÄ»¥ÁªÍø¹«Ë¾¶¼ÔÚʹÓÃMySQL£¬ÎªÁË¿¼ÂÇ´ó¼ÒµÄÇ¨ÒÆ³É±¾£¬ÎÒÃÇ»á¼æÈÝMySQLÐÒ顣ͬʱ£¬ÓÉÓÚÒѾºÜ¶àAPPÔÚMySQLÉÏÔËÐУ¬ÎªÎÒÃÇÌṩÁ˳ä×ãµÄ²âÊÔÑù±¾¡£TiDBµÄ²âÊÔÓÐÎå°Ù¶àÍò¸ö£¬Ã¿´ÎÌá½»Ò»ÐдúÂëʱ£¬ºóÃæ´ó¸ÅÓÐ6¸ö»úÆ÷²¢ÐеØÅÜTest£¬Îå°Ù¶àÍòTestËùÐèʱ¼ä´óÔ¼ÊÇÊ®·ÖÖÓ¡£ÎªÁËÕչ˸÷ÖÖÒýÇæ°®ºÃÕߣ¬ÎÒÃÇ»¹Ö§³ÖÁËLevelDB ¡¢RocksDB¡¢LMDB¡¢BoltDBµÈ¡£TiDBÖ÷ÒªÊDzÉÓà Go ÓïÑÔ¿ª·¢µÄ£¬Æä´úÂë¼òµ¥¡¢Ò×ÓÚÀí½â£¬¶øÇÒÐÔÄܷdz£¸ß¡£
ϵͳ¼Ü¹¹

ÈκÎÓÃMySQLÐÒéдµÄ³ÌÐò¶¼¿ÉÒÔÖ±½ÓʹÓÃTiDB£¬ÆäÖмäÊÇMySQLÐÒéÏà¹ØµÄÄÚÈÝ£¬ÔÙÍùÏÂÊÇSQL Layer¡£Æä´ÎÊÇÊÂÎñKV²ã£¬ÕâÕýÊÇF1ºÍSpanner¹¹ÔìµÃ×îΪ¾«Ãܵĵط½¡£×îµ×²ãµÄ¹¹ÔìÊÇ´ÓKV¿ªÊ¼£¬ÔÚKV»ù´¡ÉϼÜÒ»¸ö·Ö²¼Ê½µÄKV²ãÓÃÓÚÖ§³ÖÊÂÎñ£¬È»ºóÔÙÈÃSQLÓï¾äÖ±½ÓÓ³Éäµ½KV²ãÉÏ¡£

½ÓÏÂÀ´£¬Ïò´ó¼Ò½éÉÜ ÏÖ½×¶Î TiDB ʹÓõķֲ¼Ê½ÊÂÎñÊÇÈçºÎÔÚHBaseÉÏʵÏֵģ¬ÔçÆÚ°æ±¾ÖУ¬ÎÒÃDzο¼µÄÊÇ Google µÄ Percolator µÄÄ£ÐÍ¡£Ê×ÏȼÙÉèÓÐÒ»¸öClient£¬ÏÈΪÆä·ÖÅäÒ»¸ö Timestamp£¬ÔÚGoogleÂÛÎÄÖнÐ×öTime Oracle£¬ÓÃÀ´·ÖÅäʱ¼ä´Á¡£·ÖÅäÖ®ºó¿ÉÒÔ×ö¶Áд²Ù×÷£¬¸ù¾Ýʱ¼ä´Á½øÐпìÕÕ¶Á¡£×îºóÌύ֮ǰҪÏÈPrepare£¬PrepareµÄʱºò»á¼ì²âÊÇ·ñ³åÍ»£¬×îºóÌύʱ»áµÃµ½Commit£¬Èç¹ûÕû¸ö¹ý³ÌûÓÐÈκγåÍ»¾Í¿ÉÒÔÌá½»¡£

ÉÏͼ´ú±íÁËÒ»¸öʵÀý£¬×î³õÕÊ»§Çé¿öÊÇBobÓÐ10ÃÀ½ð£¬¶øJoeÓÐ5ÃÀ½ð¡£Ç°ÃæµÄÊý×Ö´ú±íÆä°æ±¾£¬µ±Ç°ÊǵÚ6¸ö°æ±¾£¬Ö¸ÏòµÄÊǵÚ5¸ö°æ±¾£¬Îª10ÃÀ½ð£¬JoeÊÇ2ÃÀ½ð¡£

¼ÙÉèBobҪת4ÃÀ½ð¸øJoe¡£µÚÒ»²½£¬ÒªÏÈת³öÈ¥4ÃÀ½ð£¬10ÃÀ½ð±ä³É6ÃÀ½ð£¬ÓÉÓÚ±»¿Ûµô4ÃÀ½ð£¬È»ºó»á±ê×¢Ò»ÏÂ×Ô¼ºÊÇÖ÷Ëø¡£

Joeµ±Ç°ÊǵÚ7¸ö°æ±¾£¬ÒòΪËûµÃµ½ÁË4ÃÀ½ð£¬ËùÒÔÓà¶î±ä³ÉÁË6ÃÀ½ð£¬Í¬Ê±±ê¼Ç×Ô¼ºÖ¸ÏòÁíÍâÒ»¸öÖ÷ËøBob¡£

µ½µÚ°Ë¸ö°æ±¾Ê±£¬Ö÷Ëø»áÖ¸ÏòÏÖÔÚµÄ7£¬Õâʱ¿ÉÒÔ°ÑÖ÷ËøÉ¾µô¡£Èç¹û·ÃÎʵÄʱºò·¢ÏÖÖ÷Ëø±»É¾³ý£¬ÄÇôÖ÷Ëø³åÍ»ÒѲ»´æÔÚ£¬¿ÉÒÔ½øÐÐÌá½»¡£Í¬Ê±£¬Ëü»á°Ñ×Ô¼ºµÄËøÉ¾µô£¬Öм仹ÓÐһЩÆäËüµÄÇåÀí¹ý³Ì¡£

Õû¸öÊÂÎñÄ£ÐÍÖлáÓе¥µã£¬´ÓTime Oracle·ÖÅäÒ»¸öʱ¼ä´Á£¬µ¥µã¾ö¶¨ÁËÕû¸öϵͳµÄÐÔÄÜ¡£GoogleÂÛÎÄÀïÓÐÒ»¸ö¶ÔÓ¦ÃèÊö£¬¿ÉÒÔÅܵ½Á½°ÙÍòÿÃë¡£ÒòΪÊÂÎñ¿ªÊ¼ºÍ½áÊøµÄʱºò¶¼ÐèҪȡһ¸öTimestamp£¬ËùÒÔËûÃÇ×î¿ì¶ÁдÊÂÎñµÄËÙ¶ÈÊÇÒ»°ÙÍòÿÃ룬ËûÃÇÒѾÔÚÂÛÎÄÖÐʵÏÖ¡£Êµ¼ÊÉÏ£¬ÏÖÔÚÓиüºÃµÄ·½Ê½¿ÉÒÔÌá¸ßËÙ¶È£¬ÈçHLCºÍһЩTime OracleµÄ¸Ä½øËã·¨¡£

¹ØÓÚSpanner£¬ÎÒÃÇÖØµã²Î¿¼¶ÔÏóÊǹȸèSpannerºÍF1¡£ÓÉÓÚSpanner¸ß¶ÈÒÀÀµÓÚʱÖÓ£¬ËùÒԹȸèÓÐÒ»Ì×Ô×ÓÖÓºÍGPSʱÖÓ£¬GPSÐźſÉÒÔ¸ø³öµØÀíλÖúÍʱ¼ä¡£ÎªÊ²Ã´ÐèÒªÔ×ÓÖÓÄØ£¿ÓÉÓÚGPSʱÖÓÌØ±ðÈÝÒ×Êܵ½¸ÉÈÅ£¬±ÈÈçÌìÆø¶ñÁÓʱGPSʱÖӾͲ»ÄÜÔËÐУ¬¶øÔ×ÓÖÓÈÔÈ»ÊÊÓá£

ÉÏͼÊǹȸèF1µÄһЩÐÅÏ¢£¬ÆäÖе¥¶À±ê¼ÇÁ˹ȸèF1µÄÕâÆªÂÛÎÄ£¬´ó¼ÒÓÐÐËȤµÄ»°²»·Áϸ¶ÁÒ»·¬£¬Ä¿Ç°Õû¸öTiDBËù×öµÄ¶¼ÊÇÔÚʵÏÖÕâÆªÂÛÎÄ¡£¼ÙÉèÓÐһǧÒÚÊý¾Ý£¬ÄãÏÖÔÚÒª¸øÄ³Ò»ÁмÓË÷Òýʱ£¬ÔÚ´«Í³Êý¾Ý¿âÉÏÓ¦¸ÃÈçºÎ²Ù×÷£¿±ÈÈç˵ÔÚ·Ö²¼Ê½»·¾³Ï£¬ÄãÓÃMySQL¸øÒ»ÁÐÌí¼ÓÒ»¸öË÷Òý£¬Õ⼸ºõºÜÄÑʵÏÖ£¬¶øÇÒ»¹±ØÐë±£Ö¤indexµÄÒ»ÖÂÐÔ¡£¸ü¶àϸ½ÚÇë²Î¿¼ÂÛÎÄ¡£

TiDBÊÇÈçºÎ´ÓSQLÇ¨ÒÆµ½KVÉϵÄÄØ£¿ÓÉ»ù´¡ÖªÊ¶¿ÉÖª£¬´«Í³µÄ RDBMSÊý¾Ý¿âµ×ÏÂÒ»°ãÊÇÒ»¸öB-Tree¡£¶ÔÓÚ·Ö²¼Ê½¹ØÏµÐÍÊý¾Ý¿â£¬Õ¾ÔÚ¸üÉϲãÒ»µã¿´£¬±ÈÈç¹È¸èµÄF1£¬Êý¾Ý¿âµ×²ã¶¼ÊÇKV²ã£¬¶¼ÔÚKV²ãÂ߼ϲÙ×÷¡£Èç¹ûÓÐÒ»¸öUser Table£¬ÔÚTiDBÀï¼ÙÉèÄãµÄTableµÄ½á¹¹ÊÇÓÉuid¡¢nameºÍemail¹¹³É¡£ÔÚTiDBÀïÓÐÒ»¸öÒþ²ØÁнÐ×öRowID£¬ËùÓеIJÙ×÷°üÀ¨ÐÐËø¶¼ÊÇËøµÄRowID¡£¼ÙÉèRowIDÊÇ1£¬uidÊÇXX£¬NameÊÇBob£¬EmailÊÇbob@Email.com£¬Õâ¶¼ÊôÓÚÔªÐÅÏ¢¡£¼´±ãÄãµÄColumn nameºÜ³¤£¬µ«×îºóÔÚÊý¾Ý¿âÀï´æ´¢µÄÊÇÔÐÅÏ¢¡£ÔÚTiDBÖУ¬ ÿһÁж¼ÓÐΨһµÄUID¡£
¼ÙÉèTableµÄIDÊÇ1£¬uidµÄ ID ÊÇ2£¬nameµÄIDÊÇ3£¬emailµÄIDÊÇ4¡£ÔÚÊý¾Ý¿âÖд洢Ϊһ¸öKV½á¹¹£¬È»ºó¶ÔTableID¡¢RowID ¡¢ColumnID½øÐÐÖØÐ±àÂ룬ֱ½Ó½«Õâ¸ö±íµÄÒ»ÐÐÇгÉ4¸öKV¡£ÕâʱºòÈç¹û½øÐÐselect£¬EmailµÈÓÚijһ¸öÖµµÄ»°£¬ÓÚÊÇ¿ÉÒÔÖ±½ÓÈ¡³öÀ´ÏàÓ¦µÄÖµ£¬Ëٶȷdz£¿ì¡£
¼æÈÝMySQL
TiDB¶ÔMySQLÐÒéÓкܺõļæÈÝÐÔ¡£ÓÐһЩ±È½ÏÖªÃûµÄMySQLÓ¦Óú͹ÜÀí¹¤¾ß£¬±ÈÈçWordPress¡¢PhpMyAdmin£¬ MySQL Workbench£¬¶¼¿ÉÒÔÖ±½Ó»ùÓÚTiDBÔËÐС£¶øÇÒÊý¾Ý¿ÉÒÔÎÞÏÞÀ©Õ¹£¬²»ÔÙÊǵ¥»úÊý¾Ý¿â¡£Æä´Î£¬TiDB»¹¼æÈݸ÷ÖÖORM£¬±ÈÈçXORM¡¢Beego ORMµÈ£¬Äܹ»Ö§³ÖºÜ¶àMySQLµÄÓ¦Óá£Ã¿Ò»´Î´úÂë¸üУ¬ÕâЩORM Test»á×Ô¶¯ÔËÐÐÒ»´Î£¬´Ó¶ø±£Ö¤ÓëMySQLµÄ¼æÈÝÐÔ£¬ËäÈ»»¹ÓÐһЩ±È½Ïϸ΢µÄÌØÐÔÔÝʱûÓÐÖ§³Ö¡£ÏÖÔÚÒѾ֧³ÖÒì²½µÄ Schema ±ä¸ü£¬¶ÔÓÚ DDL ²Ù×÷£¬²»»á×èÈûÏßÉϵÄÒµÎñ¡£
¹ØÓÚÉçÇø
Ŀǰ TiDB ÍêÈ«¿ªÔ´ÔÚGithubÉÏÃæ¡£¿ªÔ´ºÍ¿ª·ÅµÄ¸ÅÄîÊÇÁ½»ØÊ£¬ºÜ¶à´ó¹«Ë¾£¬ËùνµÄ¿ªÔ´Ö»ÊǰѴúÂëÉÏ´«Ò»Ï£¬¹úÄڱȽÏÖªÃûµÄ°¸ÀýҲͦ¶àµÄ£¬´ó¼ÒÖªµÀºÜ¶àÏîÄ¿¶¼ÒѾ·ÅÆúÁËά»¤¡£µ«ÊÇÎÒÃÇÊÇ´òËãÍêÈ«ÒÔÒ»¸ö¿ª·ÅµÄÐÄ̬À´×öÕû¸öÊÂÇ飬ȫ²¿µÄ´úÂ룬ȫ²¿µÄÌÖÂÛ£¬ Code Review£¬Bug Tracking£¬Roadmap ¶¼ÊÇ¿ªÔ´µÄ£¬±Ï¾¹Í¨Óõķֲ¼Ê½ OLTP ¹ØÏµÐÍÊý¾Ý¿âÊÇÒ»¸ö·Ç³£Ç°ÑضøÇÒ¼«¶ËÖØÒªµÄÁìÓò£¬Î´À´ÊÇÔÆÉ쵀 DBaaS µÄÖØÒª×é³É²¿·Ö£¬µ«ÊÇÔÚÕâ¿éĿǰÕû¸ö¼¼ÊõÉçÇø£¬¼´Ê¹È«ÇòÀ´¿´¶¼Ã»ÓÐÒ»¸öÌ«³ÉÊ쿪Դ½â¾ö·½°¸£¬TiDBҲĿǰҲ´¦ÓÚÔçÆÚ£¬´Ó¼Ü¹¹ÉÏÀ´¿´£¬ÎÒÃǽ« SQL ²ãºÍ KV ²ã×öÁ˺ܳ¹µ×µÄ·ÖÀ룬ÕâÒ²ÊÇÎÒÃÇÏ£Íû¸ü¶à¿ª·¢ÕßÄܸù¾Ý×Ô¼ºµÄÐèÒª¸ü·½±ãµÄ½øÐж¨ÖÆ£¬ÎÒÃÇÒ²ÏëµÃºÜÇå³þ£¬ÒÀ¿¿Ä³Ò»¼Ò¹«Ë¾£¬»òÕßij¼¸¸öÈ˵ÄÁ¦Á¿ÊDz»¹»µÄ£¬ÎÒÃÇ PingCAP Ö»Êǽ«ÕâÒ»°Ñ»ðµãÆðÀ´£¬½«¿ò¼Ü´îºÃ£¬Öƶ¨ºÃ͸Ã÷ºÍ¹«Æ½µÄ¹æÔò£¬ÎüÒý¸ü¶àµÄºÏ×÷¹«Ë¾ºÍ¶ÀÁ¢¿ª·¢Õߣ¬Ò»Æð½« TiDB ×ö³ÉÖйúµÚÒ»¸öÊÀ½ç¶¥¼¶µÄ¿ªÔ´ÏîÄ¿£¬ÊµÏÖ¹²Ó®¡£
ºÃµÄÏîÄ¿¿ÉÒÔÓÉÉçÇø½øÐÐÍÆ¶¯£¬¾Í±ÈÈçHBase£¬HBase²»ÊôÓÚÈκÎÒ»¸ö¹«Ë¾£¬µ«ÊÇÉçÇøÒ»Ö±ÍÆ¶¯Ëü½ø²½¡£Ä¿Ç°ÎÒÃÇÔÚGitHub״̬ÊÇÓÐ3200+µÄStar£¬ÓÐ32¸öContributors£¬ËãÊÇ¿ªÁËÒ»¸öºÃÍ·£¬·Ç³£¸Ðл´ó¼Ò£¬Ï£Íû´ó¼Ò¶¼ÄܲÎÓë½øÀ´¡£
|