¡¡¡¡MySQLµÄÐÔÄܵ÷Õû:
¡¡¡¡insert²éѯµÄËÙ¶È:
¡¡¡¡²åÈëÒ»¸ö¼Ç¼µÄʱ¼äÓÉÏÂÁÐ×é³É£º
¡¡¡¡Á¬½Ó£º(3)
¡¡¡¡·¢ËͲéѯ¸ø·þÎñÆ÷£º(2)
¡¡¡¡·ÖÎö²éѯ£º(2)
¡¡¡¡²åÈë¼Ç¼£º£¨1 x ¼Ç¼´óС£©
¡¡¡¡²åÈëË÷Òý£º£¨1 x Ë÷Òý£©
¡¡¡¡¹Ø±Õ£º(1)
¡¡¡¡ÕâÀïµÄÊý×ÖÓеãÓë×ÜÌåʱ¼ä³ÉÕý±È¡£Õâ²»¿¼ÂÇ´ò¿ª±íµÄ³õʼ¿ªÏú(ËüΪÿ¸ö²¢·¢ÔËÐеIJéѯ×öÒ»´Î)¡£
¡¡¡¡±íµÄ´óСÒÔN log N (B Ê÷)µÄËٶȼõÂýË÷ÒýµÄ²åÈë¡£
¡¡¡¡¼Ó¿ì²åÈëµÄһЩ·½·¨£º
¡¡¡¡Èç¹ûÄãͬʱ´Óͬһ¿Í»§²åÈëºÜ¶àÐУ¬Ê¹Óöà¸öÖµ±íµÄinsertÓï¾ä¡£Õâ±ÈʹÓ÷ֿªinsertÓï¾ä¿ì(ÔÚһЩÇé¿öÖм¸±¶)¡£
¡¡¡¡Èç¹ûÄã´Ó²»Í¬¿Í»§²åÈëºÜ¶àÐУ¬ÄãÄÜͨ¹ýʹÓÃinsert DELAYEDÓï¾äµÃµ½¸ü¸ßµÄËٶȡ£
¡¡¡¡×¢Ò⣬ÓÃMyISAM£¬Èç¹ûÔÚ±íÖÐûÓÐɾ³ýµÄÐУ¬ÄÜÔÚselect:sÕýÔÚÔËÐеÄͬʱ²åÈëÐС£
¡¡¡¡µ±´ÓÒ»¸öÎı¾Îļþ×°ÔØÒ»¸ö±íʱ£¬Ê¹ÓÃLOAD DATA INFILE¡£Õâͨ³£±ÈʹÓúܶàinsertÓï¾ä¿ì20±¶¡£µ±±íÓкܶàË÷Òýʱ£¬ÓпÉÄܶà×öЩ¹¤×÷ʹµÃLOAD DATA INFILE¸ü¿ìЩ¡£Ê¹ÓÃÏÂÁйý³Ì£º
¡¡¡¡ÓÐÑ¡ÔñµØÓÃcreate TABLE´´½¨±í¡£ÀýÈçʹÓÃmysql»òPerl-DBI¡£
¡¡¡¡Ö´ÐÐFLUSH TABLES£¬»òÍâ¿ÇÃüÁîmysqladmin flush-tables¡£
¡¡¡¡Ê¹ÓÃmyisamchk --keys-used=0 -rq /path/to/db/tbl_name¡£Õ⽫´Ó±íÖÐɾ³ýËùÓÐË÷ÒýµÄʹÓá£
¡¡¡¡ÓÃLOAD DATA INFILE°ÑÊý¾Ý²åÈëµ½±íÖУ¬Õ⽫²»¸üÐÂÈκÎË÷Òý£¬Òò´ËºÜ¿ì¡£
¡¡¡¡Èç¹ûÄãÓÐmyisampack²¢ÇÒÏëҪѹËõ±í£¬ÔÚËüÉÏÃæÔËÐÐmyisampack.
¡¡¡¡ÓÃmyisamchk -r -q /path/to/db/tbl_nameÔÙ´´½¨Ë÷Òý¡£Õ⽫ÔÚ½«ËüдÈë´ÅÅÌÇ°ÔÚÄÚ´æÖд´½¨Ë÷ÒýÊ÷£¬²¢ÇÒËü¸ü¿ì£¬ÒòΪ±ÜÃâ´óÁ¿´ÅÅÌÑ°µÀ¡£½á¹ûË÷ÒýÊ÷Ò²±»ÍêÃÀµØƽºâ¡£
¡¡¡¡Ö´ÐÐFLUSH TABLES£¬»òÍâ¿ÇÃüÁîmysqladmin flush-tables¡£
¡¡¡¡Õâ¸ö¹ý³Ì½«±»¹¹Ôì½øÔÚMySQLµÄij¸öδÀ´°æ±¾µÄLOAD DATA INFILE¡£
¡¡¡¡Äã¿ÉÒÔËø¶¨ÄãµÄ±íÒÔ¼ÓËÙ²åÈë¡£
¡¡¡¡mysql> LOCK TABLES a WRITE;mysql> insert INTO a VALUES (1,23),(2,34),(4,33);mysql> insert INTO a VALUES (8,26),(6,29);mysql> UNLOCK TABLES;Ö÷ÒªµÄËٶȲî±ðÊÇË÷Òý»º³åÇø½ö±»ÇåÏ´µ½´ÅÅÌÉÏÒ»´Î£¬ÔÚËùÓÐinsertÓï¾äÍê³Éºó¡£Ò»°ãÓÐÓëÓв»Í¬µÄinsertÓï¾äÄÇÑù¶áµÄË÷Òý»º³åÇøÇåÏ´¡£Èç¹ûÄãÄÜÓÃÒ»¸öµ¥¸öÓï¾ä²åÈëËùÓеÄÐУ¬Ëø¶¨¾Í²»ÐèÒª¡£Ëø¶¨Ò²½«½µµÍ¶àÁ¬½Ó²âÊÔµÄÕûÌåʱ¼ä£¬µ«ÊǶÔijЩÏß³Ì×î´óµÈ´ýʱ¼ä½«ÉÏÉý(ÒòΪËûÃǵȴýËø)¡£ÀýÈ磺
¡¡¡¡thread 1 does 1000 insertsthread 2, 3, and 4 does 1 insert
¡¡¡¡thread 5 does 1000 insertsÈç¹ûÄ㲻ʹÓÃËø¶¨£¬2¡¢3ºÍ4½«ÔÚ1ºÍ5Ç°Íê³É¡£Èç¹ûÄãʹÓÃËø¶¨£¬2¡¢3ºÍ4½«¿ÉÄܲ»ÔÚ1»ò5Ç°Íê³É£¬µ«ÊÇÕûÌåʱ¼äÓ¦¸Ã¿ì´óÔ¼40%¡£ÒòΪinsert, updateºÍdelete²Ù×÷ÔÚMySQLÖÐÊǺܿìµÄ£¬Í¨¹ýΪ¶àÓÚ´óÔ¼5´ÎÁ¬Ðø²»¶ÏµØ²åÈë»ò¸üÐÂÒ»ÐеĶ«Î÷¼ÓËø£¬Ä㽫»ñµÃ¸üºÃµÄÕûÌåÐÔÄÜ¡£Èç¹ûÄã×öºÜ¶àÒ»ÐеIJåÈ룬Äã¿ÉÒÔ×öÒ»¸öLOCK TABLES£¬Å¼¶ûËæºó×öÒ»¸öUNLOCK TABLES(´óԼÿ1000ÐÐ)ÒÔÔÊÐíÁíÍâµÄÏ̴߳æÈ¡±í¡£ÕâÈÔÈ»½«µ¼Ö»ñµÃºÃµÄÐÔÄÜ¡£µ±È»£¬LOAD DATA INFILE¶Ô×°ÔØÊý¾ÝÈÔÈ»ÊǸü¿ìµÄ¡£