ÔÚ MySQL ÖУ¬Ï̶߳ÀÏíÄÚ´æÖ÷ÒªÓÃÓÚ¸÷¿Í»§¶ËÁ¬½ÓÏ̴߳洢¸÷ÖÖ²Ù×÷µÄ¶ÀÏíÊý¾Ý£¬ÈçÏß³ÌÕ»ÐÅÏ¢£¬·Ö×éÅÅÐò²Ù×÷£¬Êý¾Ý¶Áд»º³å£¬½á¹û¼¯ÔÝ´æµÈµÈ£¬¶øÇÒ´ó¶àÊý¿ÉÒÔͨ¹ýÏà¹Ø²ÎÊýÀ´¿ØÖÆÄÚ´æµÄʹÓÃÁ¿¡£
Ïß³ÌÕ»ÐÅϢʹÓÃÄÚ´æ(thread_stack)
Ö÷ÒªÓÃÀ´´æ·Åÿһ¸öÏß³Ì×ÔÉíµÄ±êʶÐÅÏ¢£¬ÈçÏß³Ìid£¬Ïß³ÌÔËÐÐʱ»ù±¾ÐÅÏ¢µÈµÈ£¬ÎÒÃÇ¿ÉÒÔͨ¹ý thread_stack ²ÎÊýÀ´ÉèÖÃΪÿһ¸öÏß³ÌÕ»·ÖÅä¶à´óµÄÄÚ´æ¡£
ÅÅÐòʹÓÃÄÚ´æ(sort_buffer_size)
MySQL ÓôËÄÚ´æÇøÓò½øÐÐÅÅÐò²Ù×÷£¨filesort£©£¬Íê³É¿Í»§¶ËµÄÅÅÐòÇëÇó¡£µ±ÎÒÃÇÉèÖõÄÅÅÐòÇø»º´æ´óСÎÞ·¨Âú×ãÅÅÐòʵ¼ÊËùÐèÄÚ´æµÄʱºò£¬MySQL »á½«Êý¾ÝдÈë´ÅÅÌÎļþÀ´Íê³ÉÅÅÐò¡£ÓÉÓÚ´ÅÅ̺ÍÄÚ´æµÄ¶ÁдÐÔÄÜÍêÈ«²»ÔÚÒ»¸öÊýÁ¿¼¶£¬ËùÒÔsort_buffer_size²ÎÊý¶ÔÅÅÐò²Ù×÷µÄÐÔÄÜÓ°Ïì¾ø¶Ô²»¿ÉСÊÓ¡£¾³£Ê¹ÓÃË÷ÒýÀ´Íê³ÉÅÅÐò²Ù×÷¡£
Join²Ù×÷ʹÓÃÄÚ´æ(join_buffer_size)
Ó¦ÓóÌÐò¾³£»á³öÏÖһЩÁ½±í£¨»ò¶à±í£©JoinµÄ²Ù×÷ÐèÇó£¬MySQLÔÚÍê³ÉijЩ Join ÐèÇóµÄʱºò£¨all/index join£©£¬ÎªÁ˼õÉÙ²ÎÓëJoinµÄ¡°±»Çý¶¯±í¡±µÄ¶ÁÈ¡´ÎÊýÒÔÌá¸ßÐÔÄÜ£¬ÐèҪʹÓõ½ Join Buffer À´ÐÖúÍê³É Join²Ù×÷¡£µ± Join Buffer ̫С£¬MySQL ²»»á½«¸Ã Buffer ´æÈë´ÅÅÌÎļþ£¬¶øÊÇÏȽ«Join BufferÖеĽá¹û¼¯ÓëÐèÒª Join µÄ±í½øÐÐ Join ²Ù×÷£¬È»ºóÇå¿Õ Join Buffer ÖеÄÊý¾Ý£¬¼ÌÐø½«Ê£ÓàµÄ½á¹û¼¯Ð´Èë´Ë Buffer ÖУ¬Èç´ËÍù¸´¡£ÕâÊÆ±Ø»áÔì³É±»Çý¶¯±íÐèÒª±»¶à´Î¶ÁÈ¡£¬³É±¶Ôö¼Ó IO ·ÃÎÊ£¬½µµÍЧÂÊ¡£
˳Ðò¶ÁÈ¡Êý¾Ý»º³åÇøÊ¹ÓÃÄÚ´æ(read_buffer_size)
Õⲿ·ÖÄÚ´æÖ÷ÒªÓÃÓÚµ±ÐèҪ˳Ðò¶ÁÈ¡Êý¾ÝµÄʱºò£¬ÈçÎÞ·¨Ê¹ÓÃË÷ÒýµÄÇé¿öϵÄÈ«±íɨÃ裬ȫË÷ÒýɨÃèµÈ¡£ÔÚÕâÖÖʱºò£¬MySQL °´ÕÕÊý¾ÝµÄ´æ´¢Ë³ÐòÒÀ´Î¶ÁÈ¡Êý¾Ý¿é£¬Ã¿´Î¶ÁÈ¡µÄÊý¾Ý¿ìÊ×ÏÈ»áÔÝ´æÔÚread_buffer_sizeÖУ¬µ± buffer ¿Õ¼ä±»Ð´Âú»òÕßÈ«²¿Êý¾Ý¶ÁÈ¡½áÊøºó£¬ÔÙ½«bufferÖеÄÊý¾Ý·µ»Ø¸øÉϲãµ÷ÓÃÕߣ¬ÒÔÌá¸ßЧÂÊ¡£
Ëæ»ú¶ÁÈ¡Êý¾Ý»º³åÇøÊ¹ÓÃÄÚ´æ(read_rnd_buffer_size)
ºÍ˳Ðò¶ÁÈ¡Ïà¶ÔÓ¦£¬µ± MySQL ½øÐзÇ˳Ðò¶ÁÈ¡£¨Ëæ»ú¶ÁÈ¡£©Êý¾Ý¿éµÄʱºò£¬»áÀûÓÃÕâ¸ö»º³åÇøÔÝ´æ¶ÁÈ¡µÄÊý¾Ý¡£Èç¸ù¾ÝË÷ÒýÐÅÏ¢¶ÁÈ¡±íÊý¾Ý£¬¸ù¾ÝÅÅÐòºóµÄ½á¹û¼¯Óë±í½øÐÐJoinµÈµÈ¡£×ܵÄÀ´Ëµ£¬¾ÍÊǵ±Êý¾Ý¿éµÄ¶ÁÈ¡ÐèÒªÂú×ãÒ»¶¨µÄ˳ÐòµÄÇé¿öÏ£¬MySQL ¾ÍÐèÒª²úÉúËæ»ú¶ÁÈ¡£¬½ø¶øÊ¹Óõ½ read_rnd_buffer_size ²ÎÊýËùÉèÖõÄÄڴ滺³åÇø¡£
Á¬½ÓÐÅÏ¢¼°·µ»Ø¿Í»§¶Ëǰ½á¹û¼¯ÔÝ´æÊ¹ÓÃÄÚ´æ(net_buffer_size)
Õⲿ·ÖÓÃÀ´´æ·Å¿Í»§¶ËÁ¬½ÓÏ̵߳ÄÁ¬½ÓÐÅÏ¢ºÍ·µ»Ø¿Í»§¶ËµÄ½á¹û¼¯¡£µ± MySQL ¿ªÊ¼²úÉú¿ÉÒÔ·µ»ØµÄ½á¹û¼¯£¬»áÔÚͨ¹ýÍøÂç·µ»Ø¸ø¿Í»§¶ËÇëÇóÏß³Ì֮ǰ£¬»áÏÈÔÝ´æÔÚͨ¹ý net_buffer_size ËùÉèÖõĻº³åÇøÖУ¬µÈÂú×ãÒ»¶¨´óСµÄʱºò²Å¿ªÊ¼Ïò¿Í»§¶Ë·¢ËÍ£¬ÒÔÌá¸ßÍøÂç´«ÊäЧÂÊ¡£²»¹ý£¬net_buffer_size ²ÎÊýËùÉèÖõĽö½öÖ»ÊǸûº´æÇøµÄ³õʼ»¯´óС£¬MySQL »á¸ù¾Ýʵ¼ÊÐèÒª×ÔÐÐÉêÇë¸ü¶àµÄÄÚ´æÒÔÂú×ãÐèÇ󣬵«×î´ó²»»á³¬¹ý max_allowed_packet ²ÎÊý´óС¡£
ÅúÁ¿²åÈëÔÝ´æÊ¹ÓÃÄÚ´æ(bulk_insert_buffer_size)
µ±ÎÒÃÇʹÓÃÈç insert ¡ values(¡),(¡),(¡)¡ µÄ·½Ê½½øÐÐÅúÁ¿²åÈëµÄʱºò£¬MySQL »áÏȽ«Ìá½»µÄÊý¾Ý·ÅÈçÒ»¸ö»º´æ¿Õ¼äÖУ¬µ±¸Ã»º´æ¿Õ¼ä±»Ð´Âú»òÕßÌá½»ÍêËùÓÐÊý¾ÝÖ®ºó£¬MySQL ²Å»áÒ»´ÎÐÔ½«¸Ã»º´æ¿Õ¼äÖеÄÊý¾ÝдÈëÊý¾Ý¿â²¢Çå¿Õ»º´æ¡£´ËÍ⣬µ±ÎÒÃǽøÐÐ LOAD DATA INFILE ²Ù×÷À´½«Îı¾ÎļþÖеÄÊý¾Ý Load ½øÊý¾Ý¿âµÄʱºò£¬Í¬Ñù»áʹÓõ½´Ë»º³åÇø¡£
ÁÙʱ±íʹÓÃÄÚ´æ(tmp_table_size)
µ±ÎÒÃǽøÐÐÒ»Ð©ÌØÊâ²Ù×÷ÈçÐèҪʹÓÃÁÙʱ±í²ÅÄÜÍê³ÉµÄ Order By£¬Group By µÈµÈ£¬MySQL ¿ÉÄÜÐèҪʹÓõ½ÁÙʱ±í¡£µ±ÎÒÃǵÄÁÙʱ±í½ÏС£¨Ð¡ÓÚ tmp_table_size ²ÎÊýËùÉèÖõĴóС£©µÄʱºò£¬MySQL »á½«ÁÙʱ±í´´½¨³ÉÄÚ´æÁÙʱ±í£¬Ö»Óе± tmp_table_size ËùÉèÖõĴóСÎÞ·¨×°ÏÂÕû¸öÁÙʱ±íµÄʱºò£¬MySQL ²Å»á½«¸Ã±í´´½¨³É MyISAM ´æ´¢ÒýÇæµÄ±í´æ·ÅÔÚ´ÅÅÌÉÏ¡£²»¹ý£¬µ±ÁíÒ»¸öϵͳ²ÎÊý max_heap_table_size µÄ´óС»¹Ð¡ÓÚ tmp_table_size µÄʱºò£¬MySQL ½«Ê¹Óà max_heap_table_size ²ÎÊýËùÉèÖôóС×÷Ϊ×î´óµÄÄÚ´æÁÙʱ±í´óС£¬¶øºöÂÔ tmp_table_size ËùÉèÖõÄÖµ¡£¶øÇÒ tmp_table_size ²ÎÊý´Ó MySQL 5.1.2 ²Å¿ªÊ¼ÓУ¬Ö®Ç°Ò»Ö±Ê¹Óà max_heap_table_size¡£
×ܽá
ÉÏÃæËùÁÐ¾ÙµÄ MySQL Ï̶߳ÀÏíÄÚ´æ½ö½öÖ»ÊÇËùÓÐÏ̶߳ÀÏíÄÚ´æÖеIJ¿·Ö£¬²¢²»ÊÇÈ«²¿£¬Ñ¡ÔñµÄÔÔòÊÇ¿ÉÄÜ¶Ô MySQL µÄÐÔÄܲúÉú½Ï´óµÄÓ°Ï죬ÇÒ¿ÉÒÔͨ¹ýϵͳ²ÎÊý½øÐе÷½Ú¡£
ÓÉÓÚÒÔÉÏÄÚ´æ¶¼ÊÇÏ̶߳ÀÏí£¬¼«¶ËÇé¿öϵÄÄÚ´æ×ÜÌåʹÓÃÁ¿½«ÊÇËùÓÐÁ¬½ÓÏ̵߳Ä×ܱ¶Êý¡£ËùÒÔ¸÷λÅóÓÑÔÚÉèÖùý³ÌÖÐÒ»¶¨Òª½÷É÷£¬Çв»¿ÉΪÁËÌáÉýÐÔÄܾÍäĿµÄÔö´ó¸÷²ÎÊýÖµ£¬±ÜÃâÒòΪÄÚ´æ²»¹»¶ø²úÉú Out Of Memory Òì³£»òÕßÊÇÑÏÖØµÄ Swap ½»»»·´¶ø½µµÍÕûÌåÐÔÄÜ¡£