ºìÁªLinuxÃÅ»§
Linux°ïÖú

MySQLÈçºÎʹÓÃÄÚ´æ

·¢²¼Ê±¼ä:2008-07-06 00:02:42À´Ô´:ºìÁª×÷Õß:Courage
ÏÂÃæµÄÁбíÖÐÁгöÁËmysqld·þÎñÆ÷ʹÓÃÄÚ´æµÄһЩ·½·¨¡£ÔÚÊÊÓõĵط½£¬¸ø³öÁËÄÚ´æÏà¹ØµÄϵͳ±äÁ¿Ãû£º

¼ü»º´æ(±äÁ¿key_buffer_size)±»ËùÓÐÏ̹߳²Ïí£»·þÎñÆ÷ʹÓõÄÆäËü»º´æÔò¸ù¾ÝÐèÒª·ÖÅä¡£

ÿ¸öÁ¬½ÓʹÓþßÌåÏ̵߳Ŀռ䣺

¶ÑÕ»(ĬÈÏ64KB£¬±äÁ¿thread_stack)

Á¬½Ó»º´æÇø(±äÁ¿net_buffer_length)

½á¹û»º´æÇø(±äÁ¿net_buffer_length)

Á¬½Ó»º´æÇøºÍ½á¹û»º´æÇø¿ÉÒÔ¸ù¾ÝÐèÒª¶¯Ì¬À©³äµ½max_allowed_packet¡£µ±Ä³¸ö²éѯÔËÐÐʱ£¬Ò²Îªµ±Ç°²éѯ×Ö·û´®·ÖÅäÄÚ´æ¡£

ËùÓÐÏ̹߳²ÏíÏàͬµÄ»ù±¾ÄÚ´æ¡£

Ö»ÓÐѹËõMyISAM±íÓ³Éäµ½ÄÚ´æ¡£ÕâÊÇÒòΪ4GBµÄ32λÄÚ´æ¿Õ¼ä²»×ãÒÔÈÝÄÉ´ó¶àÊý´ó±í¡£µ±64λµØÖ·¿Õ¼äµÄϵͳ±äµÃÔ½À´Ô½ÆÕ±éºó£¬ÎÒÃÇ¿ÉÒÔÔö¼Ó³£¹æµÄÄÚ´æÓ³ÉäÖ§³Ö¡£

¶Ô±í½øÐÐ˳ÐòɨÃèµÄÇëÇ󽫷ÖÅäÒ»¸ö»º´æÇø(±äÁ¿read_buffer_size)¡£

µ±°´ÈÎÒâ˳Ðò¶ÁÈ¡ÐÐʱ(ÀýÈ磬°´ÕÕÅÅÐò˳Ðò)£¬½«·ÖÅäÒ»¸öËæ»ú¶Á »º´æÇø(±äÁ¿read_rnd_buffer_size)ÒÔ±ÜÃâÓ²ÅÌËÑË÷¡£

ËùÓÐÁªºÏÔÚÒ»¸öÁîÅÆÄÚÍê³É£¬²¢ÇÒ´ó¶àÊýÁªºÏÉõÖÁ¿ÉÒÔ²»ÓÃÁÙʱ±í¼´¿ÉÒÔÍê³É¡£´ó¶àÊýÁÙʱ±íÊÇ»ùÓÚÄÚ´æµÄ(HEAP)±í¡£¾ßÓдóµÄ¼Ç¼³¤¶ÈµÄÁÙʱ±í (ËùÓÐÁеij¤¶ÈµÄºÍ)»ò°üº¬BLOBÁеıí´æ´¢ÔÚÓ²ÅÌÉÏ¡£

Èç¹ûij¸öÄÚ²¿heap£¨¶Ñ»ý£©±í´óС³¬¹ýtmp_table_size£¬MySQL¿ÉÒÔ¸ù¾ÝÐèÒª×Ô¶¯½«ÄÚ´æÖеÄheap±í¸ÄΪ»ùÓÚÓ²Å̵ÄMyISAM±í¡£»¹¿ÉÒÔͨ¹ýÉèÖÃmysqldµÄtmp_table_sizeÑ¡ÏîÀ´Ôö¼ÓÁÙʱ±íµÄ´óС£¬»òÉèÖÿͻ§³ÌÐòÖеÄSQLÑ¡ÏîSQL_BIG_TABLE¡£

½øÐÐÅÅÐòµÄ´ó¶àÊýÇëÇ󽫷ÖÅäÒ»¸öÅÅÐò»º´æÇø£¬²¢¸ù¾Ý½á¹û¼¯µÄ´óСΪÁ½¸öÁÙʱÎļþ·ÖÅäÁã¡£

¼¸ºõËùÓнâÎöºÍ¼ÆËãÔÚ¾Ö²¿ÄÚ´æÖÐÍê³É¡£Ð¡ÏîÄ¿²»ÐèÒªÄڴ棬Òò´Ë±ÜÃâÁËÆÕͨµÄÂýÄÚ´æ·ÖÅäºÍÊÍ·Å¡£Ö»Îª²»ÆÚÍûµÄ´ó×Ö·û´®·ÖÅäÄڴ棻ʹÓú¯Êýmalloc()ºÍfree()À´Íê³É¡£

¶ÔÓÚÿ¸ö´ò¿ªµÄMyISAM±í£¬Ë÷ÒýÎļþ´ò¿ªÒ»´Î£»Êý¾ÝÎļþΪÿ¸ö²¢ÐÐÔËÐеÄÏ̴߳ò¿ªÒ»´Î¡£¶ÔÓÚÿ¸ö²¢ÐÐỊ̈߳¬½«·ÖÅäÒ»¸ö±í½á¹¹¡¢Ò»¸öÿ¸öÁеÄÁнṹºÍ´óСΪ3 * NµÄ»º´æÇø(ÆäÖÐNÊÇ×î´óÐеij¤¶È£¬¶ø²»ÊǼÆËãBLOBÁÐ)¡£Ò»¸öBLOBÁÐÐèÒª5ÖÁ8¸ö×Ö½Ú¼ÓÉÏBLOBÊý¾ÝµÄ³¤¶È¡£MyISAM ´æ´¢ÒýÇæά»¤Ò»¸ö¶îÍâµÄÐлº´æÇø¹©ÄÚ²¿Ó¦Óá£

¶ÔÓÚÿ¸ö¾ßÓÐBLOBÁÐµÄ±í£¬½«¶Ô»º´æÇø½øÐж¯Ì¬À©´óÒÔ¶ÁÈë´óµÄBLOB Öµ¡£Èç¹ûÄãɨÃèÒ»¸ö±í£¬Ôò·ÖÅäÒ»¸öÓë×î´óµÄBLOBÖµÒ»Ñù´óµÄ»º´æÇø¡£

ËùÓÐʹÓõıíµÄ¾ä±ú½á¹¹±£´æÔÚ¸ßËÙ»º´æÖв¢ÒÔFIFO¹ÜÀí¡£Ä¬ÈÏÇé¿ö£¬¸ßËÙ»º´æÓÐ64¸öÈë¿Ú¡£Èç¹ûij¸ö±íͬʱ±»Á½¸öÔËÐеÄÏß³ÌʹÓ㬸ßËÙ»º´æÔòΪ¸ÃÌṩÁ½¸öÈë¿Ú¡£

µ±²¢ÐÐÖ´ÐеÄÏ߳̽áÊøʱ£¬FLUSH TABLEÓï¾ä»òmysqladmin flush-tableÃüÁî¿ÉÒÔÁ¢¼´¹Ø±ÕËùÓв»Ê¹ÓÃµÄ±í²¢½«ËùÓÐʹÓÃÖеıí±ê¼ÇΪÒѾ­¹Ø±Õ¡£ÕâÑù¿ÉÒÔÓÐЧÊÍ·Å´ó¶àÊýʹÓÃÖеÄÄÚ´æ¡£FLUSH TABLEÔڹرÕËùÓбí֮ǰ²»·µ»Ø½á¹û¡£

psºÍÆäËüϵͳ״̬³ÌÐò¿ÉÒÔ±¨µ¼mysqldʹÓúܶàÄÚ´æ¡£Õâ¿ÉÒÔÊÇÔÚ²»Í¬µÄÄÚ´æµØÖ·ÉϵÄÏß³ÌÕ»Ôì³ÉµÄ¡£ÀýÈ磬Solaris°æ±¾µÄps½«Õ»¼äδÓõÄÄÚ´æËã×÷ÒÑÓõÄÄÚ´æ¡£Äã¿ÉÒÔͨ¹ýÓÃswap -s¼ì²é¿ÉÓý»»»ÇøÀ´ÑéÖ¤Ëü¡£ÎÒÃÇÓÃÉÌÒµÄڴ橶´Ì½²éÆ÷²âÊÔÁËmysqld£¬Òò´ËÓ¦¸ÃÓÐûÓÐÄڴ橶´¡£

MySQLÈçºÎʹÓÃDNS
µ±ÐµĿͻ§Á¬½Ómysqldʱ£¬mysqld´´½¨Ò»¸öеÄÏß³ÌÀ´´¦ÀíÇëÇ󡣸ÃÏß³ÌÏȼì²éÊÇ·ñÖ÷»úÃûÔÚÖ÷»úÃû»º´æÖС£Èç¹û²»ÔÚ£¬Ïß³ÌÊÔͼ½âÎöÖ÷»úÃû£º

Èç¹û²Ù×÷ϵͳ֧³ÖḬ̈߳²È«gethostbyaddr_r ()ºÍgethostbyname_r()µ÷Óã¬Ïß³ÌʹÓÃËüÃÇÀ´Ö´ÐÐÖ÷»úÃû½âÎö¡£

Èç¹û²Ù×÷ϵͳ²»Ö§³ÖḬ̈߳²È«µ÷Óã¬Ïß³ÌËø¶¨Ò»¸ö»¥³âÌå²¢µ÷ÓÃgethostbyaddr()ºÍgethostbyname()¡£ÔÚÕâÖÖÇé¿öÏ£¬ÔÚµÚ1¸öÏ߳̽âËø»¥³âÌåÇ°£¬Ã»ÓÐÆäËüÏ߳̿ÉÒÔ½âÎö²»ÔÚÖ÷»úÃû»º´æÖеÄÖ÷»úÃû¡£

Äã¿ÉÒÔÓÃ--skip-name-resolveÑ¡ÏîÆô¶¯mysqldÀ´½ûÓÃDNSÖ÷»úÃû²éÕÒ¡£È»¶ø£¬ÔÚÕâÖÖÇé¿öÏ£¬ÄãÖ»¿ÉÒÔʹÓÃMySQLÖеÄÊÚȨ±íÖеÄIPºÅ¡£

Èç¹ûÄãÓÐÒ»¸öºÜÂýµÄDNSºÍÐí¶àÖ÷»ú£¬Äã¿ÉÒÔͨ¹ýÓÃ--skip-name-resolve½ûÓÃDNS²éÕÒ»òÔö¼ÓHOST_CACHE_SIZE¶¨Òå(ĬÈÏÖµ£º128)²¢ÖØбàÒëmysqldÀ´Ìá¸ßÐÔÄÜ¡£

Äã¿ÉÒÔÓÃ--skip-host-cacheÑ¡ÏîÆô¶¯·þÎñÆ÷À´½ûÓÃÖ÷»úÃû»º´æ¡£ÒªÏëÇå³ýÖ÷»úÃû»º´æ£¬Ö´ÐÐFLUSH HOSTSÓï¾ä»òÖ´ÐÐmysqladmin flush-hostsÃüÁî¡£

Èç¹ûÄãÏëÒªÍêÈ«½ûÖ¹TCP/IPÁ¬½Ó£¬ÓÃ--skip-networkingÑ¡ÏîÆô¶¯mysqld¡£
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 1 ÌõÆÀÂÛ

  1. bbsytc ÓÚ 2009-06-27 23:31:04·¢±í:

    ѧϰÁË Ð»Ð»