°Ù·Ö°ÙÔ´ÂëÍø-Èý¨Õ¾±äµÃÈç´Ë¼òµ¥£¡ µÇ¼ ×¢²á Ç©µ½Áì½ð±Ò£¡

Ö÷Ò³ | ÈçºÎÉý¼¶VIP | TAG±êÇ©

µ±Ç°Î»ÖÃ: Ö÷Ò³>ÍøÕ¾½Ì³Ì>Êý¾Ý¿â> È«Íø×îÈ«µÄһƪÊý¾Ý¿âMVCCÏê½â£¬²»È«ÎÒ¸ºÔð
·ÖÏíÎÄÕµ½£º

È«Íø×îÈ«µÄһƪÊý¾Ý¿âMVCCÏê½â£¬²»È«ÎÒ¸ºÔð

·¢²¼Ê±¼ä£º09/01 À´Ô´£ºÎ´Öª ä¯ÀÀ£º ¹Ø¼ü´Ê£º

ʲôÊÇMVCC

È«³ÆMulti-Version Concurrency Control£¬¼´¶à°æ±¾²¢·¢²Ù×Ý£¬Ö÷Èç¹ûΪÁËÌá¸ßÊý¾Ý¿âµÄ²¢·¢»úÄÜ¡£ÒÔÏÂÎÄÕ¶¼ÊÇ»·ÈÆInnoDBÒýÇæÀ´½²£¬ÓÉÓÚmyIsam²»Ö§³ÅÊÂÎñ¡£

ͳһÐÐÊý¾Ýƽ³£·¢Éú¶Áд¿ÒÇóʱ£¬»áÉÏËø¶ÂÈûס¡£µ«mvccÓøüºÃµÄ·½Ê½È¥´¦ÖöÁ¡ªÐ´¿ÒÇó£¬×öµ½ÔÚ·¢Éú¶Á¡ªÐ´¿ÒÇó³åͻʱ²»Ïû¼ÓËø¡£

Õâ¸ö¶ÁÊÇÖ¸µÄ¿ìÕÕ¶Á£¬¶ø²»Êǵ±Ç°¶Á£¬µ±Ç°¶ÁÊÇÒ»ÖÖ¼ÓËø²Ù×Ý£¬ÊDZ¯²»ÑÅËø¡£

ÄÇËüµ½µ×ÊÇÈçºÎ×öµ½¶Á¡ªÐ´²»Ïû¼ÓËøµÄ£¬¿ìÕÕ¶ÁºÍµ±Ç°¶ÁÓÖÊÇɶ¹í£¬¸ú×ÅÄãÃǵÄÖªÐÄÀϸ磬Á¬ÐøÍùÏ¿´¡£

µ±Ç°¶Á¡¢¿ìÕÕ¶Á¶¼ÊÇɶ¹í

ʲôÊÇMySQL InnoDBϵĵ±Ç°¶ÁºÍ¿ìÕÕ¶Á£¿

µ±Ç°¶Á

Ëü¶ÁÈ¡µÄÊý¾Ý¿â¼ÇÔØ£¬¶¼Êǵ±Ç°×îеİ汾£¬»á¶Ôµ±Ç°¶ÁÈ¡µÄÊý¾ÝÍ£Ö¹¼ÓËø£¬·ÀÖ¹ÆäËûÊÂÎñÐÞ¸ÄÊý¾Ý¡£ÊDZ¯²»ÑÅËøµÄÒ»ÖÖ²Ù×Ý¡£

ÈçϲÙ×ݶ¼Êǵ±Ç°¶Á£º

  • select lock in share mode (ͬÏíËø)

  • select for update (ÅÅËûËø)

  • update (ÅÅËûËø)

  • insert (ÅÅËûËø)

  • delete (ÅÅËûËø)

  • ´®Ðл¯ÊÂÎñ¸ôÀ뼶±ð

¿ìÕÕ¶Á

¿ìÕÕ¶ÁµÄʵÏÖÊÇ»ùÓÚ¶à°æ±¾²¢·¢²Ù×Ý£¬¼´MVCC£¬¼ÈÈ»ÊǶà°æ±¾£¬ÄÇô¿ìÕÕ¶Á¶Áµ½µÄÊý¾Ý²»±ØÈ»Êǵ±Ç°×îеÄÊý¾Ý£¬Óдó¸ÅÊÇ´ËÇ°ÀúÊ·°æ±¾µÄÊý¾Ý¡£

ÈçϲÙ×ÝÊÇ¿ìÕÕ¶Á£º

  • ²»¼ÓËøµÄselect²Ù×Ý£¨×¢£ºÊÂÎñ¼¶±ð²»ÊÇ´®Ðл¯£©

¿ìÕÕ¶ÁÓëmvccµÄ¹Øϵ

MVCCCÊÇ¡°±£³ÖÒ»¸öÊý¾ÝµÄ¶à¸ö°æ±¾£¬Ê¹¶Áд²Ù×ÝûÓгåÍ»¡±µÄÒ»¸ö³éÏó¸ÅÄî¡£

Õâ¸ö¸ÅÄîÐèÒªÏêϸ¹¦Ð§È¥ÊµÏÖ£¬Õâ¸öÏêϸʵÏÖ¾ÍÊÇ¿ìÕÕ¶Á¡££¨ÏêϸʵÏÖÏÂÃæ½²£©

ÌýÍêÖªÐÄÀϸçµÄ½²½â£¬ÊDz»ÊÇ˲ʱé²Þ¶Ù¿ª¡£

Êý¾Ý¿â²¢·¢³¡¾°

  • ¶Á-¶Á£º²»´æÔÚÈκÎÎÊÌ⣬Ҳ²»ÐèÒª²¢·¢²Ù×Ý

  • ¶Á-д£ºÓÐÏß³Ìƽ°²ÎÊÌ⣬´ó¸Å»áÔì³ÉÊÂÎñ¸ôÀëÐÔÎÊÌ⣬´ó¸ÅÅöµ½Ôà¶Á£¬»Ã¶Á£¬²»³É·´¸´¶Á

  • д-д£ºÓÐÏß³Ìƽ°²ÎÊÌ⣬´ó¸Å»á´æÔÚ¸üÐÂɥʧÎÊÌ⣬±È·½µÚÒ»Àà¸üÐÂɥʧ£¬µÚ¶þÀà¸üÐÂɥʧ

MVCC½â¾ö²¢·¢ÄÄЩÎÊÌ⣿

mvccÓÃÀ´½â¾ö¶Á¡ªÐ´³åÍ»µÄÎÞËø²¢·¢²Ù×Ý£¬¾ÍÊÇΪÊÂÎñ·ÖÅäµ¥ÏòÔö³¤µÄʱ¼ä´Á¡£ÎªÃ¿¸öÊý¾ÝÐÞ¸ÄÁô´æÒ»¸ö°æ±¾£¬°æ±¾ÓëÊÂÎñʱ¼ä´ÁÏà¹ØÁª¡£

¶Á²Ù×ÝÖ»¶ÁÈ¡¸ÃÊÂÎñ¿ª¶ËÇ°µÄÊý¾Ý¿â¿ìÕÕ¡£

½â¾öÎÊÌâÈçÏ£º

  • ²¢·¢¶Á-дʱ£º¿ÉÒÔ×öµ½¶Á²Ù×ݲ»¶ÂÈûд²Ù×Ý£¬Í¬Ê±Ð´²Ù×ÝÒ²²»»á¶ÂÈû¶Á²Ù×Ý¡£

  • ½â¾öÔà¶Á¡¢»Ã¶Á¡¢²»³É·´¸´¶ÁµÈÊÂÎñ¸ôÀëÎÊÌ⣬µ«²»¿Ë²»¼°½â¾öÉÏÃæµÄд-д ¸üÐÂɥʧÎÊÌâ¡£

Òò´ËÓÐÁËÏÂÃæÌá¸ß²¢·¢»úÄܵÄ×éºÏÈ­£º

  • MVCC + ±¯²»ÑÅËø£ºMVCC½â¾ö¶Áд³åÍ»£¬±¯²»ÑÅËø½â¾öдд³åÍ»

  • MVCC + ±¯¹ÛËø£ºMVCC½â¾ö¶Áд³åÍ»£¬±¯¹ÛËø½â¾öдд³åÍ»

MVCCµÄʵÏÖµÀÀí

ËüµÄʵÏÖµÀÀíÖ÷Èç¹û°æ±¾Á´£¬undoÈÕÖ¾ £¬Read View À´ÊµÏÖµÄ

°æ±¾Á´

ÎÒÃÇÊý¾Ý¿âÖеÄÿÐÐÊý¾Ý£¬³ýÁËÎÒÃÇÈâÑÛ¿´¼ûµÄÊý¾Ý£¬»¹Óм¸¸öDZ²Ø×ֶΣ¬µÃ¿ªÌìÑÛ²ÅÄÜ¿´µ½¡£Àë±ðÊÇdb_trx_id¡¢db_roll_pointer¡¢db_row_id¡£

  • db_trx_id

    6byte£¬±ÈÀ´ÐÞ¸Ä(ÐÞ¸Ä/²åÈë)ÊÂÎñID£º¼ÇÔØ´´Á¢Õâ±Ê¼Ç¼/×îºóÒ»´ÎÐ޸ĸüÇÔصÄÊÂÎñID¡£

  • db_roll_pointer£¨°æ±¾Á´¹Ø¼ü£©

    7byte£¬»Ø¹öÖ¸Õ룬ָÏòÕâ±Ê¼Ç¼µÄÉÏÒ»¸ö°æ±¾£¨´¢±¸ÓÚrollback segmentÀ

  • db_row_id

    6byte£¬Òþº¬µÄ×ÔÔöID£¨Ç±²ØÖ÷¼ü£©£¬¼ÙÈçÊý¾Ý±íûÓÐÖ÷¼ü£¬InnoDB»áÖ÷¶¯ÒÔdb_row_id·¢ÉúÒ»¸ö¾Û´ØË÷Òý¡£

  • ʵ¼Ê»¹ÓÐÒ»¸öɾ³ýflagDZ²Ø×Ö¶Î, ¼ÇÔر»¸üлòɾ³ý²¢²»´ú±íÕæµÄɾ³ý£¬¶øÊÇɾ³ýflag±äÁË

ÈçÉÏͼ£¬db_row_idÊÇÊý¾Ý¿âĬÐíΪ¸ÃÐмÇÔØÉú³ÉµÄ¶ÀÒ»ÒþʽÖ÷¼ü£¬db_trx_idÊǵ±Ç°²Ù×ݸüÇÔصÄÊÂÎñID£¬¶ødb_roll_pointerÊÇÒ»¸ö»Ø¹öÖ¸Õ룬ÓÃÓÚÅäºÏundoÈÕÖ¾£¬Ö¸ÏòÉÏÒ»¸ö¾É°æ±¾¡£

ÿ´Î¶ÔÊý¾Ý¿â¼ÇÔØÍ£Ö¹¸Ä¶¯£¬¶¼»á¼ÇÔØÒ»ÌõundoÈÕÖ¾£¬Ã¿ÌõundoÈÕÖ¾Ò²¶¼ÓÐÒ»¸öroll_pointerÊôÐÔ£¨INSERT²Ù×ݶÔÓ¦µÄundoÈÕ־ûÓиÃÊôÐÔ£¬ÓÉÓڸüÇÔز¢Ã»ÓиüÔçµÄ°æ±¾£©£¬¿ÉÒÔ½«ÕâЩundoÈÕÖ¾¶¼Á¬ÆðÀ´£¬´®³ÉÒ»¸öÁ´±í£¬ËùÒԴ˿̵Ä×´¿ö¾ÍÏñÏÂͼһÑù£º

¶Ô¸Ã¼ÇÔØÿ´Î¸üк󣬶¼»á½«¾ÉÖµ·Åµ½Ò»ÌõundoÈÕÖ¾ÖУ¬¾ÍËãÊǸüÇÔصÄÒ»¸ö¾É°æ±¾£¬ËæןüдÎÊýµÄÔö¶à£¬ËùÓеİ汾¶¼»á±»roll_pointerÊôÐÔÁ¬½Ó³ÉÒ»¸öÁ´±í£¬ÎÒÃÇ°ÑÕâ¸öÁ´±í³Æ֮Ϊ°æ±¾Á´£¬°æ±¾Á´µÄÍ·½Úµã¾ÍÊǵ±Ç°¼ÇÔØ×îеÄÖµ¡£±ðµÄ£¬Ã¿¸ö°æ±¾Öл¹°üÀ¨Éú³É¸Ã°æ±¾Ê±¶ÔÓ¦µÄÊÂÎñid£¬Õâ¸öÐÅÏ¢ºÜÖØÒª£¬ÔÚ°´ÕÕReadViewÍƶϰ汾¿É¼ûÐÔµÄʱºò»áÓõ½¡£

undoÈÕÖ¾

Undo log Ö÷ÒªÓÃÓÚ¼ÇÔØÊý¾Ý±»Ð޸ĴËÇ°µÄÈÕÖ¾£¬ÔÚ±íÐÅÏ¢Ð޸ĴËÇ°ÏÈ»á°ÑÊý¾Ý¿½±´µ½undo logÀï¡£

µ±ÊÂÎñÍ£Ö¹»Ø¹öʱ¿ÉÒÔͨ¹ýundo log ÀïµÄÈÕ־ֹͣÊý¾Ý¸´Ô­¡£

Undo log µÄÓô¦

  • °ü¹ÜÊÂÎñÍ£Ö¹rollbackʱµÄÔ­×ÓÐÔºÍÒ»ÖÂÐÔ£¬µ±ÊÂÎñÍ£Ö¹»Ø¹öµÄʱºò¿ÉÒÔÓÃundo logµÄÊý¾ÝÍ£Ö¹¸´Ô­¡£

  • ÓÃÓÚMVCC¿ìÕÕ¶ÁµÄÊý¾Ý£¬ÔÚMVCC¶à°æ±¾²Ù×ÝÖУ¬Í¨¹ý¶ÁÈ¡undo logµÄÀúÊ·°æ±¾Êý¾Ý¿ÉÒÔʵÏÖ²»Ò»ÑùÊÂÎñ°æ±¾ºÅ¶¼¾ßÓб¾È˶ÀÁ¢µÄ¿ìÕÕÊý¾Ý°æ±¾¡£

undo logÖ÷Òª·ÖΪÁ½ÖÖ£º

  • insert undo log

    ´ú±íÊÂÎñÔÚinsertмÇÔØʱ·¢ÉúµÄundo log , Ö»ÔÚÊÂÎñ»Ø¹öʱÐèÒª£¬²¢ÇÒÔÚÊÂÎñÌá½»ºó¿ÉÒÔ±»ÂíÉÏÅ×Æú

  • update undo log£¨Ö÷Òª£©

    ÊÂÎñÔÚÍ£Ö¹update»òdeleteʱ·¢ÉúµÄundo log ; ²»½öÔÚÊÂÎñ»Ø¹öʱÐèÒª£¬ÔÚ¿ìÕÕ¶ÁʱҲÐèÒª£»

    ËùÒÔ²»¿Ë²»¼°ËæÒâɾ³ý£¬Ö»ÒªÔÚ¿ìËÙ¶Á»òÊÂÎñ»Ø¹ö²»´¥¼°¸ÃÈÕ־ʱ£¬¶ÔÓ¦µÄÈÕÖ¾²Å»á±»purgeÏß³ÌͳһÇå³ý

Read View(¶ÁÊÓͼ)

ÊÂÎñÍ£Ö¹¿ìÕÕ¶Á²Ù×ݵÄʱºòÉú²úµÄ¶ÁÊÓͼ(Read View)£¬ÔÚ¸ÃÊÂÎñÊ©ÐеĿìÕÕ¶ÁµÄÄÇÒ»¿Ì£¬»áÉú³ÉÊý¾Ý¿âϵͳµ±Ç°µÄÒ»¸ö¿ìÕÕ¡£

¼ÇÔز¢±£»¤ÏµÍ³µ±Ç°»îÆÃÊÂÎñµÄID(ûÓÐcommit£¬µ±Ã¿¸öÊÂÎñ¿ªÆôʱ£¬¶¼»á±»·ÖÅäÒ»¸öID, Õâ¸öIDÊǵÝÔöµÄ£¬ËùÒÔԽеÄÊÂÎñ£¬IDÖµÔ½´ó)£¬ÊÇϵͳÖе±Ç°²»¸Ã¸Ã±»±¾ÁìÎñ¿´µ½µÄÆäËûÊÂÎñidÁÐ±í¡£

Read ViewÖ÷Èç¹ûÓÃÀ´×ö¿É¼ûÐÔÍƶϵÄ, ¼´µ±ÎÒÃÇij¸öÊÂÎñÊ©ÐпìÕÕ¶ÁµÄʱºò£¬¶Ô¸Ã¼ÇÔØ´´Á¢Ò»¸öRead View¶ÁÊÓͼ£¬°ÑËü±È×÷Ç°ÌáÓÃÀ´Íƶϵ±Ç°ÊÂÎñÄܹ»¿´µ½Äĸö°æ±¾µÄÊý¾Ý£¬¼È´ó¸ÅÊǵ±Ç°×îеÄÊý¾Ý£¬Ò²Óдó¸ÅÊǸÃÐмÇÔصÄundo logÀïÃæµÄij¸ö°æ±¾µÄÊý¾Ý¡£

Read View¼¸¸öÊôÐÔ

  • trx_ids: µ±Ç°ÏµÍ³»îÆÃ(δÌá½»)ÊÂÎñ°æ±¾ºÅ»ãºÏ¡£

  • low_limit_id: ´´Á¢µ±Ç°read view ʱ¡°µ±Ç°ÏµÍ³×î´óÊÂÎñ°æ±¾ºÅ+1¡±¡£

  • up_limit_id: ´´Á¢µ±Ç°read view ʱ¡°ÏµÍ³Õý´¦ÓÚ»îÆÃÊÂÎñ×îС°æ±¾ºÅ¡±

  • creator_trx_id: ´´Á¢µ±Ç°read viewµÄÊÂÎñ°æ±¾ºÅ£»

Read View¿É¼ûÐÔÍƶÏÇ°Ìá

  • db_trx_id < up_limit_id || db_trx_id == creator_trx_id£¨ÏÔʾ£©

    ¼ÙÈçÊý¾ÝÊÂÎñIDСÓÚread viewÖеÄ×îС»îÆÃÊÂÎñID£¬Ôò¿ÉÒԱض¨¸ÃÊý¾ÝÊÇÔÚµ±Ç°ÊÂÎñÆô´ËÇ°¾ÍÒѾ­´æÔÚÁ˵Ä,ËùÒÔ¿ÉÒÔÏÔʾ¡£

    »òÕßÊý¾ÝµÄÊÂÎñIDµÈÓÚcreator_trx_id £¬ÄÇô˵Ã÷Õâ¸öÊý¾Ý¾ÍÊǵ±Ç°ÊÂÎñ±¾ÈËÉú³ÉµÄ£¬±¾ÈËÉú³ÉµÄÊý¾Ý±¾È˵±È»ÄÜ¿´¼û£¬ËùÒÔÕâÖÖ×´¿öÏ´ËÊý¾ÝÒ²ÊÇ¿ÉÒÔÏÔʾµÄ¡£

  • db_trx_id >= low_limit_id£¨²»ÏÔʾ£©

    ¼ÙÈçÊý¾ÝÊÂÎñID´óÓÚread view Öеĵ±Ç°ÏµÍ³µÄ×î´óÊÂÎñID£¬Ôò˵Ã÷¸ÃÊý¾ÝÊÇÔÚµ±Ç°read view ´´Á¢Ö®ºó²Å·¢ÉúµÄ£¬ËùÒÔÊý¾Ý²»ÏÔʾ¡£¼ÙÈçСÓÚÔò½øÈëÏÂÒ»¸öÍƶÏ

  • db_trx_id¿É·ñÔÚ»îÆÃÊÂÎñ£¨trx_ids£©ÖÐ

    • ²»´æÔÚ£ºÔò˵Ã÷read view·¢ÉúµÄʱºòÊÂÎñÒѾ­commitÁË£¬ÕâÖÖ×´¿öÊý¾ÝÔò¿ÉÒÔÏÔʾ¡£

    • ÒÑ´æÔÚ£ºÔò´ú±íÎÒRead ViewÉú³Éʱ¿Ì£¬ÄãÕâ¸öÊÂÎñ»¹ÔÚ»îÆ㬻¹Ã»ÓÐCommit£¬ÄãÐ޸ĵÄÊý¾Ý£¬ÎÒµ±Ç°ÊÂÎñÒ²ÊÇ¿´²»¼ûµÄ¡£

MVCCºÍÊÂÎñ¸ôÀ뼶±ð

ÉÏÃæËù½²µÄRead ViewÓÃÓÚÖ§³ÅRC£¨Read Committed£¬¶ÁÌá½»£©ºÍRR£¨Repeatable Read£¬¿É·´¸´¶Á£©¸ôÀ뼶±ðµÄʵÏÖ¡£

RR¡¢RCÉú³Éʱ»ú

  • RC¸ôÀ뼶±ðÏ£¬ÊÇÿ¸ö¿ìÕÕ¶Á¶¼»áÉú³É²¢ÁÔÈ¡×îеÄRead View£»

  • ¶øÔÚRR¸ôÀ뼶±ðÏ£¬ÔòÊÇͳһ¸öÊÂÎñÖеĵÚÒ»¸ö¿ìÕÕ¶Á²Å»á´´Á¢Read View, Ö®ºóµÄ¿ìÕÕ¶ÁÁÔÈ¡µÄ¶¼ÊÇͳһ¸öRead View£¬Ö®ºóµÄ²éѯ¾Í²»»á·´¸´Éú³ÉÁË£¬ËùÒÔÒ»¸öÊÂÎñµÄ²éѯ½á¹ûÿ´Î¶¼ÊÇÒ»ÑùµÄ¡£

½â¾ö»Ã¶ÁÎÊÌâ

  • ¿ìÕÕ¶Á£ºÍ¨¹ýMVCCÀ´Í£Ö¹²Ù×ݵģ¬²»Ïû¼ÓËø¡£ÒÀÕÕMVCCÖй涨µÄ¡°Óï·¨¡±Í£Ö¹Ôöɾ¸Ä²éµÈ²Ù×Ý£¬ÒÔÐÒÃâ»Ã¶Á¡£

  • µ±Ç°¶Á£ºÍ¨¹ýnext-keyËø£¨ÐÐËø+gapËø£©À´½â¾öÎÊÌâµÄ¡£

RC¡¢RR¼¶±ðϵÄInnoDB¿ìÕÕ¶Á²»Í¬

  • ÔÚRR¼¶±ðϵÄij¸öÊÂÎñµÄ¶Ôij±Ê¼Ç¼µÄµÚÒ»´Î¿ìÕÕ¶Á»á´´Á¢Ò»¸ö¿ìÕÕ¼°Read View£¬ ½«µ±Ç°ÏµÍ³»îÆõÄÆäËûÊÂÎñ¼ÇÔØÆðÀ´£¬´ËºóÔÚµ÷È¡¿ìÕÕ¶ÁµÄʱºò£¬»¹ÊÇʹÓõÄÊÇͳһ¸öRead View£¬ËùÒÔÖ»Òªµ±Ç°ÊÂÎñÔÚÆäËûÊÂÎñÌá½»¸üдËǰʹÓùý¿ìÕÕ¶Á£¬ÄÇô֮ºóµÄ¿ìÕÕ¶ÁʹÓõĶ¼ÊÇͳһ¸öRead View£¬ËùÒÔ¶ÔÖ®ºóµÄÐ޸IJ»³É¼û£»

  • ¼´RR¼¶±ðÏ£¬¿ìÕÕ¶ÁÉú³ÉRead Viewʱ£¬Read View»á¼ÇÔØ´ËʱËùÓÐÆäËû»î¶¯ÊÂÎñµÄ¿ìÕÕ£¬ÕâЩÊÂÎñµÄÐ޸ĹØÓÚµ±Ç°ÊÂÎñ¶¼ÊDz»³É¼ûµÄ¡£¶øÔçÓÚRead View´´Á¢µÄÊÂÎñËù×öµÄÐ޸ľùÊǿɼû

  • ¶øÔÚRC¼¶±ðϵģ¬ÊÂÎñÖУ¬Ã¿´Î¿ìÕÕ¶Á¶¼»áÐÂÉú³ÉÒ»¸ö¿ìÕÕºÍRead View, Õâ¾ÍÊÇÎÒÃÇÔÚRC¼¶±ðϵÄÊÂÎñÖпÉÒÔ¿´µ½±ðµÄÊÂÎñÌá½»µÄ¸üеÄÔµÓÉ

×ܽá

´ÓÒÔÉϵÄÃèдÖÐÎÒÃÇ¿ÉÒÔ¿´³öÀ´£¬ËùνµÄMVCCÖ¸µÄ¾ÍÊÇÔÚʹÓÃREAD COMMITTD¡¢REPEATABLE READÕâÁ½ÖÖ¸ôÀ뼶±ðµÄÊÂÎñÔÚÊ©ÐÐÒ»°ãµÄSEELCT²Ù×Ýʱ°Ý·Ã¼ÇÔصİ汾Á´µÄÀú³Ì£¬ÕâÄ£Ñù¿ÉÒÔʹ²»Ò»ÑùÊÂÎñµÄ¶Á-д¡¢Ð´-¶Á²Ù×ݲ¢·¢Ê©ÐУ¬´Ó¶ø½úÉýϵͳ»úÄÜ¡£

´òÉÍ

´òÉÍ

È¡Ïû

¸ÐлÄúµÄÖ§³Ö£¬ÎÒ»á¼ÌÐøŬÁ¦µÄ!

ɨÂëÖ§³Ö
ɨÂë´òÉÍ£¬Äã˵¶àÉپͶàÉÙ

´ò¿ªÖ§¸¶±¦É¨Ò»É¨£¬¼´¿É½øÐÐɨÂë´òÉÍŶ

°Ù·Ö°ÙÔ´ÂëÍø ½¨Òé´òÉÍ1¡«10Ôª£¬ÍÁºÀËæÒ⣬¸ÐлÄúµÄÔĶÁ£¡

¹²ÓÐ151ÈËÔĶÁ£¬ÆÚ´ýÄãµÄÆÀÂÛ£¡·¢±íÆÀÂÛ
êdzƣº ÍøÖ·£º ÑéÖ¤Â룺 µã»÷ÎÒ¸ü»»Í¼Æ¬
×îÐÂÆÀÂÛ

±¾ÎıêÇ©

¹ã¸æÔÞÖú

ÄܳöÒ»·ÖÁ¦ÊÇÒ»·Ö°É£¡

¶©ÔÄ»ñµÃ¸ü¶àÄ£°å

±¾ÎıêÇ©

¹ã¸æÔÞÖú

¶©ÔÄ»ñµÃ¸ü¶àÄ£°å