mysql Âý²éѯ²éѯºÍÒýÆðÔÒò·ÖÎö
MySQLÓÐÒ»¸ö¹¦ÄܾÍÊÇ¿ÉÒÔlogÏÂÀ´ÔËÐеıȽÏÂýµÄsqlÓï¾ä£¬Ä¬ÈÏÊÇûÓÐÕâ¸ölogµÄ£¬ÎªÁË¿ªÆôÕâ¸ö¹¦ÄÜ£¬ÒªÐÞ¸Ämy.cnf»òÕßÔÚMySQLÆô¶¯µÄʱºò¼ÓÈëһЩ²ÎÊý¡£
Èç¹ûÔÚmy.cnfÀïÃæÐ޸ģ¬ÐèÔö¼ÓÈçϼ¸ÐÐ
long_query_time = 1
log-slow-queries =
log-queries-not-using-indexes
long_query_time ÊÇÖ¸Ö´Ðг¬¹ý¶à¾ÃµÄsql»á±»logÏÂÀ´£¬ÕâÀïÊÇ1Ãë¡£
log-slow-queries ÉèÖðÑÈÕ־дÔÚÄÇÀ¿ÉÒÔΪ¿Õ£¬ÏµÍ³»á¸øÒ»¸öȱʡµÄÎļþlog-queries-not-using-indexes ¾ÍÊǼͼûʹÓÃË÷ÒýµÄsql
·ÖÎö£º
mysqldumpslow –helpÒÔÏ£¬Ö÷ÒªÓõÄÊÇ
-s ORDER what to sort by (t, at, l, al, r, ar etc), ‘at’ is default
-t NUM just show the top n queries
-g PATTERN grep: only consider stmts that include this string
-s£¬ÊÇorderµÄ˳Ðò£¬ËµÃ÷дµÄ²»¹»Ïêϸ£¬°³ÓÃÏÂÀ´£¬°üÀ¨¿´ÁË´úÂ룬Ö÷ÒªÓÐ
c,t,l,rºÍac,at,al,ar£¬·Ö±ðÊǰ´ÕÕquery´ÎÊý£¬Ê±¼ä£¬lockµÄʱ¼äºÍ·µ»ØµÄ¼Ç¼ÊýÀ´ÅÅÐò£¬Ç°Ãæ¼ÓÁËaµÄʱµ¹Ðð
-t£¬ÊÇtop nµÄÒâ˼£¬¼´Îª·µ»ØÇ°Ãæ¶àÉÙÌõµÄÊý¾Ý
-g£¬ºó±ß¿ÉÒÔдһ¸öÕýÔòÆ¥Åäģʽ£¬´óСд²»Ãô¸ÐµÄ
mysqldumpslow -s c -t 20 host-slow.log
mysqldumpslow -s r -t 20 host-slow.log
ÉÏÊöÃüÁî¿ÉÒÔ¿´³ö·ÃÎÊ´ÎÊý×î¶àµÄ20¸ösqlÓï¾äºÍ·µ»Ø¼Ç¼¼¯×î¶àµÄ20¸ösql¡£
mysqldumpslow -t 10 -s t -g “left join” host-slow.log
Õâ¸öÊǰ´ÕÕʱ¼ä·µ»ØÇ°10ÌõÀïÃæº¬ÓÐ×óÁ¬½ÓµÄsqlÓï¾ä¡£
Time: 060908 22:17:43
# Query_time: 12 Lock_time: 0 Rows_sent: 86345 Rows_examined: 580963
Q:Õâ¸öÊÇÂý²éµÄÈÕÖ¾,¶¼ÊÇЩʲôÒâ˼?
A:²éѯÓÃÁË12Ã·µ»Ø86345ÐУ¬Ò»¹²²éÁË580963ÐÐ
²éѯËÙ¶ÈÂýµÄÔÒòºÜ¶à£¬³£¼ûÈçϼ¸ÖÖ£º
¡¡¡¡1¡¢Ã»ÓÐË÷Òý»òÕßûÓÐÓõ½Ë÷Òý(ÕâÊDzéѯÂý×î³£¼ûµÄÎÊÌ⣬ÊdzÌÐòÉè¼ÆµÄȱÏÝ)
¡¡¡¡2¡¢I/OÍÌÍÂÁ¿Ð¡£¬ÐγÉÁËÆ¿¾±Ð§Ó¦¡£
¡¡¡¡3¡¢Ã»Óд´½¨¼ÆËãÁе¼Ö²éѯ²»ÓÅ»¯¡£
¡¡¡¡4¡¢ÄÚ´æ²»×ã
¡¡¡¡5¡¢ÍøÂçËÙ¶ÈÂý
¡¡¡¡6¡¢²éѯ³öµÄÊý¾ÝÁ¿¹ý´ó(¿ÉÒÔ²ÉÓöà´Î²éѯ£¬ÆäËûµÄ·½·¨½µµÍÊý¾ÝÁ¿)
¡¡¡¡7¡¢Ëø»òÕßËÀËø(ÕâÒ²ÊDzéѯÂý×î³£¼ûµÄÎÊÌ⣬ÊdzÌÐòÉè¼ÆµÄȱÏÝ)
¡¡¡¡8¡¢sp_lock,sp_who,»î¶¯µÄÓû§²é¿´,ÔÒòÊǶÁд¾ºÕù×ÊÔ´¡£
¡¡¡¡9¡¢·µ»ØÁ˲»±ØÒªµÄÐкÍÁÐ
¡¡¡¡10¡¢²éѯÓï¾ä²»ºÃ£¬Ã»ÓÐÓÅ»¯
Ïà¹ØÎĵµ£º
½üÀ´¶Ôphp±È½Ï¸ÐÐËȤ£¬¾Í¶Ï¶ÏÐøÐøµÄ»¨ÁËÁ½¸öÐÇÆÚµÄʱ¼ä°ÑÕû¸öphp¿ª·¢ÐèÒªÓõ½µÄ¶«Î÷¶¼×°ºÃÁË£¬´ó¸ÅµÄ°²×°¹ý³ÌÈçÏ¡£
Ò»¡¢°²×°µÄÈí¼þ:
Apache: 2.2.14
PHP:5.2.12
MySQL:5.1.42¡£
SVN:1.5.6
PHPMyAdmin:3.2.5
Zend Studio: 7.1
Zend Debugger: 5.1.14
¶þ¡¢°²×°¹ý³Ì£º
1. °²×°ºÍÅäÖÃapache
°²×°£ºÊ×ÏÈ´Óhttp://apa ......
轉×Ô»¨開µÄµØ·½
mysqlÓÐÒ»¸ö¹¦ÄܾÍÊÇ¿ÉÒÔlogÏÂÀ´ÔËÐеıȽÏÂýµÄsqlÓï¾ä£¬Ä¬ÈÏÊÇûÓÐÕâ¸ölogµÄ£¬ÎªÁË¿ªÆôÕâ¸ö¹¦ÄÜ£¬ÒªÐÞ¸Ämy.cnf»òÕßÔÚmysqlÆô¶¯
µÄʱºò¼ÓÈëһЩ²ÎÊý¡£
Èç¹ûÔÚmy.cnfÀïÃæÐ޸ģ¬ÐèÔö¼ÓÈçϼ¸ÐÐ
long_query_time = 1
log-slow-queries
=
log-queries-not-using-indexes
long_query_t ......
mysqlËø»úÖÆ
mysqlÖÐ¶Ô±í¼¶µÄ´æ´¢ÒýÇæÀ´ËµÊÇÊÍ·ÅËÀËøµÄ£¬±ÜÃâËÀËø¿ÉÒÔÕâÑù×öµ½:ÔÚÈκβéѯ֮ǰÏÈÇëÇóËø£¬²¢ÇÒ°´ÕÕÇëÇóµÄ˳ÐòËø±í¡£
MysqlÖÐÓÃÓÚwrite(д)µÄ±íËøµÄʵÏÖ»úÖÆÈçÏ£º
Èç¹û±íûÓмÓËø£¬ÄÇô¾Í¼ÓÒ»¸öÐ´Ëø¡£·ñÔòµÄ»°£¬½«ÇëÇó·Åµ½Ð´Ëø¶ÓÁÐÖС£
mysqlÖÐÓÃÓÚread(¶Á)µÄ±íËøµÄʵÏÖ»úÖÆÈçÏ£º
Èç¹û±íûÓмÓËø£¬ÄÇô ......
Ê×ÏÈÐèÒª²é¿´Ò»Ï´´½¨º¯ÊýµÄ¹¦ÄÜÊÇ·ñ¿ªÆô£º
mysql> show variables like '%func%';
+-----------------------------------------+-------+
| Variable_name   ......
1.²é¿´MySQL·ÖÇø±íµÄÖ´Ðмƻ®:
×¢Òâ:¶ÔMySQL·ÖÇø±í°´·ÖÇø²éѯ,²»ÓÃÏñOracleÄÇÑù,ÔÚSQLÖÐÌí¼Ó“PARTITION”×Ö·û´®¡£
Ìáʾ£ºÊ¹Ó÷ÖÇø¹¦ÄÜÖ®ºó£¬Ïà¹Ø²éѯ×îºÃ¶¼ÓÃEXPLAIN PARTITIONS¹ýÒ»±é£¬È·ÈÏ·ÖÇøÊÇ·ñÉúЧ¡£ÀýÈç:
EXPLAIN PARTITIONS SELECT * from tab_test WHERE created = '2008-01-02';
2.²é¿´MySQLÆÕͨ± ......