Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
½â¶Á·Ö¿â·Ö±íÖмä¼þSharding-JDBC
 
  À´Ô´:CSDN   ·¢²¼ÓÚ 2016-2-17
  5930  次浏览      27
 

¡¾±àÕß°´¡¿Êý¾Ý¿â·Ö¿â·Ö±í´Ó»¥ÁªÍøÊ±´ú¿ªÆôÖÁ½ñ£¬Ò»Ö±ÊÇÈÈÃÅ»°Ìâ¡£ÔÚNoSQLºáÐеĽñÌ죬¹ØÏµÐÍÊý¾Ý¿âƾ½èÆäÎȶ¨¡¢²éѯÁé»î¡¢¼æÈݵÈÌØÐÔ£¬ÈÔ±»´ó¶àÊý¹«Ë¾×÷ΪÊ×Ñ¡Êý¾Ý¿â¡£Òò´Ë£¬ºÏÀí²ÉÓ÷ֿâ·Ö±í¼¼ÊõÓ¦¶Ôº£Á¿Êý¾ÝºÍ¸ß²¢·¢¶ÔÊý¾Ý¿âµÄ³å»÷£¬ÊǸ÷´ó»¥ÁªÍø¹«Ë¾²»¿É±ÜÃâµÄÎÊÌâ¡£

ËäÈ»ºÜ¶à¹«Ë¾¶¼ÖÂÁ¦ÓÚ¿ª·¢×Ô¼ºµÄ·Ö¿â·Ö±íÖмä¼þ£¬µ«½ØÖ¹Ä¿Ç°£¬ÈÔÎÞÍêÃÀµÄ¿ªÔ´½â¾ö·½°¸¸²¸Ç´ËÁìÓò¡£

·Ö¿â·Ö±íÊÊÓó¡¾°

·Ö¿â·Ö±íÓÃÓÚÓ¦¶Ôµ±Ç°»¥ÁªÍø³£¼ûµÄÁ½¸ö³¡¾°¡ª¡ª´óÊý¾ÝÁ¿ºÍ¸ß²¢·¢¡£Í¨³£·ÖΪ´¹Ö±²ð·ÖºÍˮƽ²ð·ÖÁ½ÖÖ¡£

´¹Ö±²ð·ÖÊǸù¾ÝÒµÎñ½«Ò»¸ö¿â£¨±í£©²ð·ÖΪ¶à¸ö¿â£¨±í£©¡£È磺½«¾­³£ºÍ²»³£·ÃÎʵÄ×ֶβð·ÖÖÁ²»Í¬µÄ¿â»ò±íÖС£ÓÉÓÚÓëÒµÎñ¹ØÏµÃÜÇУ¬Ä¿Ç°µÄ·Ö¿â·Ö±í²úÆ·¾ùʹÓÃˮƽ²ð·Ö·½Ê½¡£

ˮƽ²ð·ÖÔòÊǸù¾Ý·ÖƬËã·¨½«Ò»¸ö¿â£¨±í£©²ð·ÖΪ¶à¸ö¿â£¨±í£©¡£È磺°´ÕÕIDµÄ×îºóһλÒÔ3È¡Ó࣬βÊýÊÇ1µÄ·ÅÈëµÚ1¸ö¿â£¨±í£©£¬Î²ÊýÊÇ2µÄ·ÅÈëµÚ2¸ö¿â£¨±í£©µÈ¡£

¹ØÏµÐÍÊý¾Ý¿âÔÚ´óÓÚÒ»¶¨Êý¾ÝÁ¿µÄÇé¿öϼìË÷ÐÔÄܻἱ¾çϽµ¡£ÔÚÃæ¶Ô»¥ÁªÍøº£Á¿Êý¾ÝÇé¿öʱ£¬ËùÓÐÊý¾Ý¶¼´æÓÚÒ»ÕÅ±í£¬ÏÔÈ»»áÇáÒ׳¬¹ýÊý¾Ý¿â±í¿É³ÐÊܵÄÊý¾ÝÁ¿·§Öµ¡£Õâ¸öµ¥±í¿É³ÐÊܵÄÊý¾ÝÁ¿·§Öµ£¬Ðè¸ù¾ÝÊý¾Ý¿âºÍ²¢·¢Á¿µÄ²îÒ죬ͨ¹ýʵ¼Ê²âÊÔ»ñµÃ¡£

µ¥´¿µÄ·Ö±íËäÈ»¿ÉÒÔ½â¾öÊý¾ÝÁ¿¹ý´óµ¼Ö¼ìË÷±äÂýµÄÎÊÌ⣬µ«ÎÞ·¨½â¾ö¹ý¶à²¢·¢ÇëÇó·ÃÎÊͬһ¸ö¿â£¬µ¼ÖÂÊý¾Ý¿âÏìÓ¦±äÂýµÄÎÊÌâ¡£ËùÒÔͨ³£Ë®Æ½²ð·Ö¶¼ÖÁÉÙÒª²ÉÓ÷ֿâµÄ·½Ê½£¬ÓÃÓÚÒ»²¢½â¾ö´óÊý¾ÝÁ¿ºÍ¸ß²¢·¢µÄÎÊÌâ¡£ÕâÒ²ÊDz¿·Ö¿ªÔ´µÄ·ÖƬÊý¾Ý¿âÖмä¼þÖ»Ö§³Ö·Ö¿âµÄÔ­Òò¡£

µ«·Ö±íÒ²Óв»¿ÉÌæ´úµÄÊÊÓó¡¾°¡£×î³£¼ûµÄ·Ö±íÐèÇóÊÇÊÂÎñÎÊÌ⡣ͬÔÚÒ»¸ö¿âÔò²»Ð迼ÂÇ·Ö²¼Ê½ÊÂÎñ£¬ÉÆÓÚʹÓÃͬ¿â²»Í¬±í¿ÉÓÐЧ±ÜÃâ·Ö²¼Ê½ÊÂÎñ´øÀ´µÄÂé·³¡£Ä¿Ç°Ç¿Ò»ÖÂÐԵķֲ¼Ê½ÊÂÎñÓÉÓÚÐÔÄÜÎÊÌ⣬µ¼ÖÂʹÓÃÆðÀ´²¢²»Ò»¶¨±È²»·Ö¿â·Ö±í¿ì¡£Ä¿Ç°²ÉÓÃ×îÖÕÒ»ÖÂÐÔµÄÈáÐÔÊÂÎñ¾Ó¶à¡£·Ö±íµÄÁíÒ»¸ö´æÔÚµÄÀíÓÉÊÇ£¬¹ý¶àµÄÊý¾Ý¿âʵÀý²»ÀûÓÚÔËά¹ÜÀí¡£×ÛÉÏËùÊö£¬×î¼Ñʵ¼ùÊǺÏÀíµØÅäºÏʹÓ÷ֿâ+·Ö±í¡£

Sharding-JDBC¼ò½é

Sharding-JDBCÊǵ±µ±Ó¦Óÿò¼ÜddframeÖУ¬´Ó¹ØÏµÐÍÊý¾Ý¿âÄ£¿édd-rdbÖзÖÀë³öÀ´µÄÊý¾Ý¿âˮƽ·ÖƬ¿ò¼Ü£¬ÊµÏÖ͸Ã÷»¯Êý¾Ý¿â·Ö¿â·Ö±í·ÃÎÊ¡£Sharding-JDBCÊǼÌdubboxºÍelastic-jobÖ®ºó£¬ddframeϵÁпªÔ´µÄµÚ3¸öÏîÄ¿¡£

Sharding-JDBCÖ±½Ó·â×°JDBC API£¬¿ÉÒÔÀí½âΪÔöÇ¿°æµÄJDBCÇý¶¯£¬¾É´úÂëÇ¨ÒÆ³É±¾¼¸ºõΪÁ㣺

  • ¿ÉÊÊÓÃÓÚÈκλùÓÚJavaµÄORM¿ò¼Ü£¬ÈçJPA¡¢Hibernate¡¢Mybatis¡¢Spring JDBC Template»òÖ±½ÓʹÓÃJDBC¡£
  • ¿É»ùÓÚÈκεÚÈý·½µÄÊý¾Ý¿âÁ¬½Ó³Ø£¬ÈçDBCP¡¢C3P0¡¢ BoneCP¡¢DruidµÈ¡£
  • ÀíÂÛÉÏ¿ÉÖ§³ÖÈÎÒâʵÏÖJDBC¹æ·¶µÄÊý¾Ý¿â¡£ËäȻĿǰ½öÖ§³ÖMySQL£¬µ«ÒÑÓÐÖ§³ÖOracle¡¢SQLServerµÈÊý¾Ý¿âµÄ¼Æ»®¡£

Sharding-JDBC¶¨Î»ÎªÇáÁ¿Java¿ò¼Ü£¬Ê¹Óÿͻ§¶ËÖ±Á¬Êý¾Ý¿â£¬ÒÔjar°üÐÎʽÌṩ·þÎñ£¬ÎÞproxy´úÀí²ã£¬ÎÞÐè¶îÍⲿÊð£¬ÎÞÆäËûÒÀÀµ£¬DBAÒ²ÎÞÐè¸Ä±äÔ­ÓеÄÔËά·½Ê½¡£

Sharding-JDBC·ÖƬ²ßÂÔÁé»î£¬¿ÉÖ§³ÖµÈºÅ¡¢between¡¢inµÈ¶àά¶È·ÖƬ£¬Ò²¿ÉÖ§³Ö¶à·ÖƬ¼ü¡£

SQL½âÎö¹¦ÄÜÍêÉÆ£¬Ö§³Ö¾ÛºÏ¡¢·Ö×é¡¢ÅÅÐò¡¢limit¡¢orµÈ²éѯ£¬²¢Ö§³ÖBinding TableÒÔ¼°µÑ¿¨¶û»ý±í²éѯ¡£

Óë³£¼û¿ªÔ´²úÆ·¶Ô±È

ΪÁË¶ÔÆäËû¿ªÔ´ÏîÄ¿±íʾ×ðÖØ£¬ÎÒÃÇÎÞÒâÆÀÂÛĿǰÈÔÔÚ¸üÐÂÖеÄÏîÄ¿¡£ÕâÀï½öÁгöĿǰֹͣ¸üУ¬µ«ÈÔÈ»ÔÚÊý¾Ý¿â·ÖƬÁìÓò·Ç³£ÓÐÓ°ÏìÁ¦µÄ¼¸¸öÏîÄ¿£¬Çë²Î¼û±í1¡£

±í1 Êý¾Ý¿â·ÖƬ¹¤¾ß¶Ô±È

ͨ¹ýÒÔÉϱí¸ñ¿ÉÒÔ¿´³ö£¬CobarÊôÓÚÖмä²ã·½°¸£¬ÔÚÓ¦ÓóÌÐòºÍMySQLÖ®¼ä´î½¨Ò»²ãProxy¡£Öмä²ã½éÓÚÓ¦ÓóÌÐòÓëÊý¾Ý¿â¼ä£¬ÐèÒª×öÒ»´Îת·¢£¬¶ø»ùÓÚJDBCЭÒé²¢ÎÞ¶îÍâת·¢£¬Ö±½ÓÓÉÓ¦ÓóÌÐòÁ¬½ÓÊý¾Ý¿â£¬ÐÔÄÜÉÏÓÐЩÐíÓÅÊÆ¡£ÕâÀï²¢·Ç˵Ã÷Öмä²ãÒ»¶¨²»Èç¿Í»§¶ËÖ±Á¬£¬³ýÁËÐÔÄÜ£¬ÐèÒª¿¼ÂǵÄÒòËØ»¹Óкܶ࣬Öмä²ã¸ü±ãÓÚʵÏÖ¼à¿Ø¡¢Êý¾ÝÇ¨ÒÆ¡¢Á¬½Ó¹ÜÀíµÈ¹¦ÄÜ¡£

Cobar-Client¡¢TDDLºÍSharding-JDBC¾ùÊôÓÚ¿Í»§¶ËÖ±Á¬·½°¸¡£´Ë·½°¸µÄÓÅÊÆÔÚÓÚÇá±ã¡¢¼æÈÝÐÔ¡¢ÐÔÄÜÒÔ¼°¶ÔDBAÓ°ÏìС¡£ÆäÖÐCobar-ClientµÄʵÏÖ·½Ê½»ùÓÚORM£¨Mybatis£©¿ò¼Ü£¬Æä¼æÈÝÐÔÓëÀ©Õ¹ÐÔ²»Èç»ùÓÚJDBCЭÒéµÄºóÁ½Õß¡£

ʵÏÖÔ­Àí

ǰÎÄÒѽéÉÜÁËSharding-JDBCÊÇʵÏÖÁËJDBCЭÒéµÄjarÎļþ¡£»ùÓÚJDBCЭÒéµÄʵÏÖÓë»ùÓÚMySQLµÈÊý¾Ý¿âЭÒéʵÏÖµÄÖмä²ãÂÔÓвî±ð¡£

ÎÞÂÛʹÓÃÄÄÖּܹ¹£¬ºËÐÄÂß¼­¾ù¼«ÎªÏàËÆ£¬³ýÁËЭÒéʵÏֲ㲻ͬ£¨JDBC»òÊý¾Ý¿âЭÒ飩£¬¶¼»á·ÖΪ·ÖƬ¹æÔòÅäÖá¢SQL½âÎö¡¢SQL¸Äд¡¢SQL·ÓÉ¡¢SQLÖ´ÐÐÒÔ¼°½á¹û¹é²¢µÈÄ£¿é¡£

Sharding-JDBCµÄÕûÌå¼Ü¹¹Í¼²Î¼ûͼ1¡£

ͼ1 Sharding-JDBCµÄÕûÌå¼Ü¹¹Í¼

·ÖƬ¹æÔòÅäÖÃ

Sharding-JDBCµÄ·ÖƬÂß¼­·Ç³£Áé»î£¬Ö§³Ö·ÖƬ²ßÂÔ×Ô¶¨Òå¡¢¸´Êý·ÖƬ¼ü¡¢¶àÔËËã·û·ÖƬµÈ¹¦ÄÜ¡£

È磺¸ù¾ÝÓû§ID·Ö¿â£¬¸ù¾Ý¶©µ¥ID·Ö±íÕâÖÖ·Ö¿â·Ö±í½áºÏµÄ·ÖƬ²ßÂÔ£»»ò¸ù¾ÝÄê·Ö¿â£¬Ô·Ý+Óû§ÇøÓòID·Ö±íÕâÑùµÄ¶àƬ¼ü·ÖƬ¡£

Sharding-JDBC³ýÁËÖ§³ÖµÈºÅÔËËã·û½øÐÐ·ÖÆ¬£¬»¹Ö§³Öin/betweenÔËËã·û·ÖƬ£¬ÌṩÁ˸ü¼ÓÇ¿´óµÄ·ÖƬ¹¦ÄÜ¡£

Sharding-JDBCÌṩÁËspringÃüÃû¿Õ¼äÓÃÓÚ¼ò»¯ÅäÖã¬ÒÔ¼°¹æÔòÒýÇæÓÃÓÚ¼ò»¯²ßÂÔ±àд¡£ÓÉÓÚĿǰ¸Õ¿ªÔ´·ÖƬºËÐÄÂß¼­£¬ÕâÁ½¸öÄ£¿éÔÝδ¿ªÔ´£¬´ýºËÐÄÎȶ¨ºó½«»á¿ªÔ´ÆäËûÄ£¿é¡£

JDBC¹æ·¶ÖØÐ´

Sharding-JDBC¶ÔJDBC¹æ·¶µÄÖØÐ´Ë¼Â·ÊÇÕë¶ÔDataSource¡¢Connection¡¢Statement¡¢PreparedStatementºÍResultSetÎå¸öºËÐĽӿڷâ×°£¬½«¶à¸öÕæÊµJDBCʵÏÖÀ༯ºÏ£¨È磺MySQL JDBCʵÏÖ/DBCP JDBCʵÏֵȣ©ÄÉÈëSharding-JDBCʵÏÖÀà¹ÜÀí¡£

Sharding-JDBC¾¡Á¿×î´ó»¯ÊµÏÖJDBCЭÒ飬°üÀ¨addBatchÕâÖÖÔÚJPAÖлáʹÓõÄÅúÁ¿¸üй¦ÄÜ¡£µ«·ÖƬJDBC±Ï¾¹ÓëÔ­ÉúJDBC²»Í¬£¬ËùÒÔĿǰÈÔÓÐδʵÏֵĽӿڣ¬°üÀ¨ConnectionÓα꣬´æ´¢¹ý³ÌºÍsavePointÏà¹Ø¡¢ResultSetÏòǰ±éÀúºÍÐ޸ĵȲ»Ì«³£ÓõŦÄÜ¡£´ËÍ⣬ΪÁ˱£Ö¤¼æÈÝÐÔ£¬²¢Î´ÊµÏÖJDBC 4.1¼°Æäºó·¢²¼µÄ½Ó¿Ú£¨È磺DBCP 1.x°æ±¾²»Ö§³ÖJDBC 4.1£©¡£

SQL½âÎö

SQL½âÎö×÷Ϊ·Ö¿â·Ö±íÀà²úÆ·µÄºËÐÄ£¬ÐÔÄܺͼæÈÝÐÔÊÇ×îÖØÒªµÄºâÁ¿Ö¸±ê¡£Ä¿Ç°³£¼ûµÄSQL½âÎöÆ÷Ö÷ÒªÓÐfdb/jsqlparserºÍDruid¡£Sharding-JDBCʹÓÃDruid×÷ΪSQL½âÎöÆ÷£¬¾­Êµ¼Ê²âÊÔ£¬Druid½âÎöËÙ¶ÈÊÇÁíÍâÁ½¸ö½âÎöÆ÷µÄ¼¸Ê®±¶¡£

ĿǰSharding-JDBCÖ§³Öjoin¡¢aggregation£¨°üÀ¨avg£©¡¢order by¡¢ group by¡¢limit¡¢ÉõÖÁor²éѯµÈ¸´ÔÓSQLµÄ½âÎö¡£Ä¿Ç°²»Ö§³Öunion¡¢²¿·Ö×Ó²éѯ¡¢º¯ÊýÄÚ·ÖÆ¬µÈ²»Ì«Ó¦ÔÚ·ÖÆ¬³¡¾°ÖгöÏÖµÄSQL½âÎö¡£

SQL¸Äд

SQL¸Äд·ÖΪÁ½²¿·Ö£¬Ò»²¿·ÖÊǽ«·Ö±íµÄÂß¼­±íÃû³ÆÌæ»»ÎªÕæÊµ±íÃû³Æ¡£ÁíÒ»²¿·ÖÊǸù¾ÝSQL½âÎö½á¹ûÌæ»»Ò»Ð©ÔÚ·ÖÆ¬»·¾³Öв»ÕýÈ·µÄ¹¦ÄÜ¡£ÕâÀï¾ßÁ½¸öÀý×Ó£º

µÚ1¸öÀý×ÓÊÇavg¼ÆËã¡£ÔÚ·ÖÆ¬µÄ»·¾³ÖУ¬ÒÔavg1 +avg2+avg3/3¼ÆËãÆ½¾ùÖµ²¢²»ÕýÈ·£¬ÐèÒª¸ÄдΪ£¨sum1+sum2+sum3£©/£¨count1+count2+ count3£©¡£Õâ¾ÍÐèÒª½«°üº¬avgµÄSQL¸ÄдΪsumºÍcount£¬È»ºóÔÙ½á¹û¹é²¢Ê±ÖØÐ¼ÆËãÆ½¾ùÖµ¡£

µÚ2¸öÀý×ÓÊÇ·ÖÒ³¡£¼ÙÉèÿ10ÌõÊý¾ÝΪһҳ£¬È¡µÚ2Ò³Êý¾Ý¡£ÔÚ·ÖÆ¬»·¾³Ï»ñÈ¡limit 10, 10£¬¹é²¢Ö®ºóÔÙ¸ù¾ÝÅÅÐòÌõ¼þÈ¡³öǰ10ÌõÊý¾ÝÊDz»ÕýÈ·µÄ½á¹û¡£ÕýÈ·µÄ×ö·¨Êǽ«·ÖÌõ¼þ¸ÄдΪlimit 0, 20£¬È¡³öËùÓÐǰ2Ò³Êý¾Ý£¬ÔÙ½áºÏÅÅÐòÌõ¼þËã³öÕýÈ·µÄÊý¾Ý¡£¿ÉÒÔ¿´µ½Ô½ÊÇ¿¿ºóµÄLimit·ÖҳЧÂʾͻáÔ½µÍ£¬Ò²Ô½ÀË·ÑÄÚ´æ¡£Óкܶ෽·¨¿É±ÜÃâʹÓÃlimit½øÐзÖÒ³£¬±ÈÈç¹¹½¨¼Ç¼ÐмǼÊýºÍÐÐÆ«ÒÆÁ¿µÄ¶þ¼¶Ë÷Òý£¬»òʹÓÃÉϴηÖÒ³Êý¾Ý½áβID×÷ΪÏ´βéѯÌõ¼þµÄ·ÖÒ³·½Ê½¡£

SQL·ÓÉ

SQL·ÓÉÊǸù¾Ý·ÖƬ¹æÔòÅäÖ㬽«SQL¶¨Î»ÖÁÕæÕýµÄÊý¾ÝÔ´¡£Ö÷Òª·ÖΪµ¥±í·ÓÉ¡¢Binding±í·Óɺ͵ѿ¨¶û»ý·ÓÉ¡£

µ¥±í·ÓÉ×îΪ¼òµ¥£¬µ«Â·Óɽá¹û²»Ò»¶¨ÂäÈëΨһ¿â£¨±í£©£¬ÒòΪ֧³Ö¸ù¾ÝbetweenºÍinÕâÑùµÄ²Ù×÷·û½øÐÐ·ÖÆ¬£¬ËùÒÔ×îÖÕ½á¹ûÈÔÈ»¿ÉÄÜÂäÈë¶à¸ö¿â£¨±í£©¡£

Binding±í¿ÉÀí½âΪ·Ö¿â·Ö±í¹æÔòÍêȫһÖµÄÖ÷´Ó±í¡£¾ÙÀý˵Ã÷£º¶©µ¥±íºÍ¶©µ¥ÏêÇé±í¶¼¸ù¾Ý¶©µ¥ID×÷Ϊ·ÖƬ¼ü£¬ÈÎÒâʱ¿Ì·ÖƬÂß¼­¾ùÏàͬ¡£ÕâÑùµÄ¹ØÁª²éѯºÍµ¥±í²éѯÄѶȺÍÐÔÄÜÏ൱¡£

µÑ¿¨¶û»ý²éѯ×îΪ¸´ÔÓ£¬ÒòΪÎÞ·¨¸ù¾ÝBinding¹ØÏµ¶¨Î»·ÖƬ¹æÔòµÄÒ»ÖÂÐÔ£¬ËùÒÔ·ÇBinding±íµÄ¹ØÁª²éѯÐèÒª²ð½âΪµÑ¿¨¶û»ý×éºÏÖ´ÐС£²éѯÐÔÄܽϵͣ¬¶øÇÒÊý¾Ý¿âÁ¬½ÓÊý½Ï¸ß£¬Ðè½÷É÷ʹÓá£

SQLÖ´ÐÐ

·ÓÉÖÁÕæÊµÊý¾ÝÔ´ºó£¬Sharding-JDBC½«²ÉÓöàÏ̲߳¢·¢Ö´ÐÐSQL£¬²¢Íê³É¶ÔaddBatchµÈÅúÁ¿·½·¨µÄ´¦Àí¡£

½á¹û¹é²¢

½á¹û¹é²¢°üÀ¨4ÀࣺÆÕͨ±éÀúÀà¡¢ÅÅÐòÀà¡¢¾ÛºÏÀàºÍ·Ö×éÀࡣÿÖÖÀàÐͶ¼»áÏȸù¾Ý·ÖÒ³½á¹ûÌø¹ý²»ÐèÒªµÄÊý¾Ý¡£

ÆÕͨ±éÀúÀà×îΪ¼òµ¥£¬Ö»Ð谴˳Ðò±éÀúResultSetµÄ¼¯ºÏ¼´¿É¡£

ÅÅÐòÀà½á¹û½«½á¹ûÏÈÅÅÐòÔÙÊä³ö£¬ÒòΪ¸÷·ÖƬ½á¹û¾ù°´ÕÕ¸÷×ÔÌõ¼þÍê³ÉÅÅÐò£¬ËùÒÔ²ÉÓù鲢ÅÅÐòËã·¨ÕûºÏ×îÖÕ½á¹û¡£

¾ÛºÏÀà·ÖΪ3ÖÖÀàÐÍ£¬±È½ÏÐÍ¡¢ÀÛ¼ÓÐÍºÍÆ½¾ùÖµÐÍ¡£±È½ÏÐͰüÀ¨maxºÍmin£¬Ö»·µ»Ø×î´ó£¨Ð¡£©½á¹û¡£ÀÛ¼ÓÐͰüÀ¨sumºÍcount£¬ÐèÒª½«½á¹ûÀۼӺ󷵻ء£Æ½¾ùÖµÔòÊÇͨ¹ýSQL¸ÄдµÄsumºÍcount¼ÆË㣬Ïà¹ØÄÚÈÝÒÑÔÚSQL¸Äдº­¸Ç£¬²»ÔÙ׸Êö¡£

·Ö×éÀà×îΪ¸´ÔÓ£¬ÐèÒª½«ËùÓеÄResultSet½á¹û·ÅÈëÄڴ棬ʹÓÃmap-reduceËã·¨·Ö×飬×îºó¸ù¾ÝÅÅÐòºÍ¾ÛºÏÌõ¼þ×öÏà¹Ø´¦Àí¡£×îÏûºÄÄڴ棬×îËðʧÐÔÄܵIJ¿·Ö¼´ÊÇ´Ë£¬¿ÉÒÔ¿¼ÂÇʹÓÃlimitºÏÀíµÄÏÞÖÆ·Ö×éÊý¾Ý´óС¡£

½á¹û¹é²¢²¿·ÖĿǰ²¢Î´²ÉÓùܵÀ½âÎöµÄ·½Ê½£¬Ö®ºó»áÕë¶ÔÕâÀï×ö¸ü¶à¸Ä½ø¡£

ÐÔÄÜ

·Óɽá¹ûÔÚµ¥¿âµ¥±íµÄÐÔÄܲâÊÔ±¨¸æ£º

²éѯ²Ù×÷£ºSharding-JDBCµÄTPSΪJDBCµÄTPSµÄ99.8%£»

²åÈë²Ù×÷£ºSharding-JDBCµÄTPSΪJDBCµÄTPSµÄ90.2%£»

¸üвÙ×÷£ºSharding-JDBCµÄTPSΪJDBCµÄTPSµÄ93.1%£»?

¿ÉÒÔ¿´µ½£¬Sharding-JDBCÐÔÄÜËðʧ·Ç³£µÍ¡£

·Óɽá¹ûÔÚ¶à¿â¶à±íµÄÐÔÄܲâÊÔ±¨¸æ£º

²éѯ²Ù×÷£ºTPSË«¿â±Èµ¥¿â¿ÉÒÔÔö¼Ó´óÔ¼94%µÄÐÔÄÜ£»?

²åÈë²Ù×÷£ºTPSË«¿â±Èµ¥¿â¿ÉÒÔÔö¼Ó´óÔ¼60%µÄÐÔÄÜ£»

¸üвÙ×÷£ºTPSË«¿â±Èµ¥¿â¿ÉÒÔÔö¼Ó´óÔ¼89%µÄÐÔÄÜ£»?

½á¹û±íÃ÷£¬Sharding-JDBC¿ÉÓÐЧÀûÓöàÏß³ÌÓë·Ö²¼Ê½×ÊÔ´´ó·ù¶ÈÌáÉýÐÔÄÜ£»?

¸ü¶àÏêϸÇé¿ö¿É²é¿´Sharding-JDBCµÄÐÔÄܲâÊÔ±¨¸æ¡£

Roadmap

ĿǰSharding-JDBC¼¯ÖÐÓÚ·Ö¿â·Ö±íºËÐÄÂß¼­¿ª·¢£¬ÔÚ¹¦ÄÜÎȶ¨Ö®ºó½«»á°´ÕÕÈçÏÂÏß·³ÖÐø¸üУº

  • ¶Áд·ÖÀ룻
  • ÈáÐÔ·Ö²¼Ê½ÊÂÎñ£»
  • ·Ö²¼Ê½Ö÷¼üÉú³É²ßÂÔ£»
  • SQLÖØÐ´ÓÅ»¯£¬½øÒ»²½ÌáÉýÐÔÄÜ£»
  • SQL Hint£¬¿ÉÖ¸¶¨Ä³SQLÔÚij¾ßÌå¿â±íÖ´ÐУ¬»ùÓÚÒµÎñ¹æÔò¶ø·ÇSQL½âÎö·ÓÉ£»?
    С±í¹ã²¥£»
  • HAÏà¹Ø£»
  • Á÷Á¿¿ØÖÆ£»
  • Êý¾Ý¿â½¨±í¹¤¾ß£»
  • Êý¾ÝÇ¨ÒÆ£»
  • ¸´ÔÓSQL½âÎöÖ§³Ö£¬Èç×Ó²éѯ¡¢´æ´¢¹ý³ÌµÈ£»
  • Oracle£¬ SQLServerÖ§³Ö£»
  • ÅäÖÃÖÐÐÄ£»

¿ªÔ´ÀíÄî

Ŀǰ¹úÄںܶ࿪Դ²úÆ·¶¼ÔÚ¹«Ë¾ÄÚ²¿¾­Êܹýʱ¼äµÄ¿¼Ñ飬Ȼºó°þÀëÒµÎñÂß¼­ºÍÃô¸Ð´úÂ룬ÔÙ¿ªÔ´¹±Ï׸øÉçÇø¡£ÕâÑù×öµÄÓŵãÊÇ¿ªÔ´µÄ²úÆ·Ïà¶Ô³ÉÊì¡£µ«È±µãÒ²²»¿É±ÜÃ⣬Ö÷ÒªÓУº

  1. ºóÐøÖ§³ÖØÑ·¦¡£²úÆ·ÒѾ­Âú×ãÁ˸ù«Ë¾µÄÒµÎñ³¡¾°ÐèÇó£¬È±·¦ºóÐøÌáÉýµÄ¶¯Á¦¡£Îĵµ¡¢Ö§³ÖÒ²»áÏà¶Ô½ÏÉÙ£¬ÉõÖÁ³öÏÖÎĵµºÍ´úÂ벻ͬ²½µÄ×´¿ö¡£
  2. Óë¸Ã¹«Ë¾ÒµÎñ³¡¾°ñîºÏ½ÏΪÑÏÖØ¡£´ó²¿·Ö¿ò¼Ü²úÆ·¶¼ÊÇΪÁ˽â¾öÌØ¶¨µÄÎÊÌâ¡£±ÈÈ磺ÓеĹ«Ë¾¿ÉÄܲ¢²»ÐèÒª·Ö±í£»ÓеĹ«Ë¾Ö»ÐèÖ§³Ö¼¸ÖÖ·ÖÆ¬²ßÂԾͺá£
  3. ¿ªÔ´²»ÍêÕû¡£ºÍ¹«Ë¾ÒµÎññîºÏ½ôÃܵIJ¿·Ö²»»á¿ªÔ´¡£
  4. ȱ·¦Õ³¶È¡£½ÏΪ³ÉÐ͵ÄÏîÄ¿ÓÉÓÚ¹¦ÄÜ·±¶à¡¢´úÂë½á¹¹¸´ÔÓ£¬ÉçÇøÖ¾Ô¸ÕßÄÑÓÚÀ©Õ¹»òÐ޸ĺËÐÄÂß¼­¡£Èç¹û²âÊÔ¸²¸ÇÂʲ»¹»£¬ÄÑÒÔ±£Ö¤Ð޸ĺóµÄ´úÂëÖÊÁ¿¡£ÒÔÉÏһϵÁÐÎÊÌâ»áµ¼ÖÂÏîÄ¿¶ÔÉçÇøµÄÕ³¶È²»¸ß£¬ÄÑÓÚÕÒѰ¿ÉºÏ×÷¿ª·¢µÄÖ¾Ô¸Õß¡£
  5. ·ÖÖ§ÖÚ¶àÄÑÓÚά»¤¡£ÓÉÓÚ¿ªÔ´Ö®ºó¹«Ë¾È±·¦³ÖÐøÌáÉýµÄ¶¯Á¦£¬ºÍ±¾¹«Ë¾¹ØÏµ²»´óµÄÐèÇó¹¦Äܵò»µ½ÖØÊÓ£¬µ¼Ö¸÷¹«Ë¾¶¼¿ª·¢×Ô¼ºµÄ·ÖÖ§¡£¿ªÔ´ÏîÄ¿ËäȻһ¿ªÊ¼¸øÉçÇø×¢ÈëÁËÐÂÏÊ˼Ï룬µ«×îÖÕ²¢Ã»ÓÐÎüÈ¡ÉçÇø¾«»ª¡£È磺DubboÒ»³öÏÖ¼´ÒýÆðÁËÏ൱¶àµÄ¹Ø×¢£¬¶ø¸÷¹«Ë¾¶¼ÓÐ×Ô¼ºµÄ°æ±¾£¬Èçµ±µ±µÄDubboX£¬µ«×îÖÕDubbo²¢Î´ÄܳÖÐø·¢Õ¹¡£

ÎÒÃÇ¿¼ÂÇȫеĿªÔ´²ßÂÔ£¬ÔÚSharding-JDBC¸ÕÍê³É³õ°æµÄʱºò£¬¼´ÏòÉçÇøºÍµ±µ±ÄÚ²¿Í¬Ê±Íƹ㡣ÕâÑù×öµÄºÃ´¦ÓУº

  • ºóÐøÖ§³ÖÍêÉÆ¡£Sharding-JDBCÓëµ±µ±ÄÚ²¿Â䵨°ó¶¨£¬½«»áÔÚµ±µ±ÄÚ²¿ºÍÉçÇøÍ¬Ê±Ìṩ֧³Ö¡£ËäÈ»ÎÞ·¨ÌṩÉçÇøÐèÇóµÄÓÅÏȼ¶¸ßÓÚµ±µ±ÄÚ²¿µÄ³Ðŵ£¬µ«ÎÒÃÇ»á×ۺϿ¼ÂÇÉçÇøÓëÄÚ²¿µÄÐèÇó£¬ÒÔ¸ü¸ßµÄÊӽǣ¬¾¡Á¿ÕûºÏÓëÓÅ»¯Éý¼¶Â·Ïß¡£
  • ÍêÕû¿ªÔ´¡£´úÂëµÄsnapshot°æ±¾¶¼»áÊ×ÏȳöÏÖÔÚGitHubÉÏ¡£
  • ¹²Í¬·¢Õ¹¡£Sharding-JDBCĿǰ´úÂë½ÏΪ¼òµ¥¡£Ê¹ÉçÇø¿ªÔ´°®ºÃÕßÄܸü¼ÓÇáËɵØÀí½â´úÂëºËÐÄ£¬ÎªÒÔºóµÄ³ÖÐø·¢Õ¹µì¶¨»ù´¡¡£²¢ÇÒSharding-JDBCÒ²»áÎüÄÉÉçÇø¾«»ª£¬Èøü¶àµØ°®ºÃÕß²ÎÓë´úÂë¹±Ïס£

×îºóÐèÒª³ÎÇ壬δ¾­Ê±¼ä¿¼Ö¤µÄSharding-JDBC²¢·ÇBug³É¶Ñ£¬ÍêÈ«²»¿ÉÓõÄÏîÄ¿¡£Ä¿Ç°²âÊÔ¸²¸ÇÂʳ¬¹ý90%£¬Ïêϸ¹¦ÄÜÒÔ¼°²»Ö§³ÖÏî¶¼Ã÷È·µØÂÞÁÐÔÚGitHubµÄÎĵµÖУ¬Ï£ÍûÈÃʹÓÃÕßÐÄÖÐÓÐÊý¡£

ͼƬÃèÊö

µ±µ±Íø¼Ü¹¹Ê¦ÕÅÁÁ
   
5930 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

»ùÓÚEAµÄÊý¾Ý¿â½¨Ä£
Êý¾ÝÁ÷½¨Ä££¨EAÖ¸ÄÏ£©
¡°Êý¾Ýºþ¡±£º¸ÅÄî¡¢ÌØÕ÷¡¢¼Ü¹¹Óë°¸Àý
ÔÚÏßÉ̳ÇÊý¾Ý¿âϵͳÉè¼Æ ˼·+Ч¹û
 
Ïà¹ØÎĵµ

GreenplumÊý¾Ý¿â»ù´¡Åàѵ
MySQL5.1ÐÔÄÜÓÅ»¯·½°¸
ijµçÉÌÊý¾ÝÖÐ̨¼Ü¹¹Êµ¼ù
MySQL¸ßÀ©Õ¹¼Ü¹¹Éè¼Æ
Ïà¹Ø¿Î³Ì

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

MySQLË÷Òý±³ºóµÄÊý¾Ý½á¹¹
MySQLÐÔÄܵ÷ÓÅÓë¼Ü¹¹Éè¼Æ
SQL ServerÊý¾Ý¿â±¸·ÝÓë»Ö¸´
ÈÃÊý¾Ý¿â·ÉÆðÀ´ 10´óDB2ÓÅ»¯
oracleµÄÁÙʱ±í¿Õ¼äдÂú´ÅÅÌ
Êý¾Ý¿âµÄ¿çƽ̨Éè¼Æ


²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿â
¸ß¼¶Êý¾Ý¿â¼Ü¹¹Éè¼ÆÊ¦
HadoopÔ­ÀíÓëʵ¼ù
Oracle Êý¾Ý²Ö¿â
Êý¾Ý²Ö¿âºÍÊý¾ÝÍÚ¾ò
OracleÊý¾Ý¿â¿ª·¢Óë¹ÜÀí


GE Çø¿éÁ´¼¼ÊõÓëʵÏÖÅàѵ
º½Ìì¿Æ¹¤Ä³×Ó¹«Ë¾ Nodejs¸ß¼¶Ó¦Óÿª·¢
ÖÐÊ¢Òæ»ª ׿Խ¹ÜÀíÕß±ØÐë¾ß±¸µÄÎåÏîÄÜÁ¦
ijÐÅÏ¢¼¼Êõ¹«Ë¾ PythonÅàѵ
ij²©²ÊITϵͳ³§ÉÌ Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À
ÖйúÓÊ´¢ÒøÐÐ ²âÊÔ³ÉÊì¶ÈÄ£Ðͼ¯³É(TMMI)
ÖÐÎïÔº ²úÆ·¾­ÀíÓë²úÆ·¹ÜÀí