MysqlÖ®EXPLAINÏÔʾusing filesort
EXPLAIN ÊÇmysql½âÊÍselect²éѯµÄÒ»¸ö¹Ø¼ü×Ö,¿ÉÒԺܷ½±ãµÄÓÃÓÚµ÷ÊÔ
Óï·¨¸ñʽÈçÏÂ
EXPLAIN tbl_name
»òÕß:
EXPLAIN SELECT select_options
EXPLAIN Óï¾ä¿ÉÒÔ±»µ±×÷ DESCRIBE µÄͬÒå´ÊÀ´Óã¬Ò²¿ÉÒÔÓÃÀ´»ñȡһ¸öMySQLÒªÖ´ÐÐµÄ SELECT Óï¾äµÄÏà¹ØÐÅÏ¢¡£
EXPLAIN tbl_name Óï·¨ºÍ DESCRIBE tbl_name »ò SHOW COLUMNS from tbl_name Ò»Ñù¡£
µ±ÔÚÒ»¸ö SELECT Óï¾äǰʹÓùؼü×Ö EXPLAIN ʱ£¬MYSQL»á½âÊÍÁ˼´½«ÈçºÎÔËÐиà SELECT Óï¾ä£¬ËüÏÔʾÁ˱íÈçºÎÁ¬½Ó¡¢Á¬½ÓµÄ˳ÐòµÈÐÅÏ¢¡£
ÒÔÏÂÐÅϢΪÒýÓÃ:
ÔÚexplainÎÒÃÇËùʹÓõÄsqlµÄʱºò£¬¾³£»áÓöµ½using filesortÕâÖÖÇé¿ö£¬ÔÒÔΪÊÇÓÉÓÚÓÐÏàͬÁÐÖµµÄÔÒòÒýÆð£¬½á¹û×òÌì¿´µ½¹«Ë¾µÄÒ»¸ösql£¬¸úͬÊÂÌÖÂÛÁËϼÓÉÏ×Ô¼ºÓÖ×öÁËһЩ²âÊÔ£¬Í»È»·¢ÏÖ×Ô¼ºÔÀ´µÄÏë·¨ÊÇ´íÎóµÄ¡£
Ê×ÏÈ£¬Ö»ÓÐÔÚorder by Êý¾ÝÁеÄʱºò²Å¿ÉÄÜ»á³öÏÖusing filesort£¬¶øÇÒÈç¹ûÄã²»¶Ô½øÐÐorder byµÄÕâÒ»ÁÐÉèÖÃË÷ÒýµÄ»°£¬ÎÞÂÛÁÐÖµÊÇ·ñÓÐÏàͬµÄ¶¼»á³öÏÖusing filesort¡£Òò´Ë£¬Ö»ÒªÓõ½order by µÄÕâÒ»Áж¼Ó¦¸ÃΪÆä½¨Á¢Ò»¸öË÷Òý¡£
Æä´Î£¬ÔÚÕâ´Î²âÊÔÖУ¬Ê¹ÓÃÁËÒ»¸öÉÔ΢Óе㸴ÔÓµÄÀý×ÓÀ´ËµÃ÷Õâ¸öÎÊÌ⣬ÏÂÃæÏêϸÓÃÕâ¸öÀý×Ó˵һÏ£º
SELECT * from DB.TB WHERE ID=2222 AND FID IN (9,8,3,13,38,40) ORDER BY INVERSE_DATE LIMIT 0, 5
ÀïÃæ½¨Á¢µÄË÷ÒýΪһ¸öÈýÁеĶàÁÐË÷Òý£ºIDX£¨ID,FID ,INVERSE_DATE£© ¡£INVERSE_DATEÕâ¸öÊÇʱ¼äµÄ·´ÏòË÷Òý¡£
¶ÔÓÚÕâ¸ösqlÎÒµ±Ê±×ʼÈÏΪӦ¸ÃÊǸöÓÅ»¯ºÃµÄ״̬£¬Ó¦¸ÃûÓÐʲôç¢Â©ÁË£¬½á¹ûÒ»explain²Å·¢ÏÖ¾¹È»³öÏÖÁË£ºUsing where; Using filesort¡£
ÎªÊ²Ã´ÄØ£¬ºóÀ´¾¹ý·ÖÎö²ÅµÃÖª£¬ÔÀ´ÔÚ¶àÁÐË÷ÒýÔÚ½¨Á¢µÄʱºòÊÇÒÔB-Ê÷½á¹¹½¨Á¢µÄ£¬Òò´Ë½¨Á¢Ë÷ÒýµÄʱºòÊÇÏȽ¨Á¢IDµÄ°´Ë³ÐòÅŵÄË÷Òý£¬ÔÚÏàͬIDµÄÇé¿öϽ¨Á¢FID°´ ˳ÐòÅŵÄË÷Òý£¬×îºóÔÚFID ÏàͬµÄÇé¿öϽ¨Á¢°´INVERSE_DATE˳ÐòÅŵÄË÷Òý£¬Èç¹ûÁÐÊý¸ü¶àÒÔ´ËÀàÍÆ¡£ÓÐÁËÕâ¸öÀíÂÛÒÀ¾ÝÎÒÃÇ¿ÉÒÔ¿´³öÔÚÕâ¸ösqlʹÓÃÕâ¸öIDXË÷ÒýµÄʱºòÖ»ÊÇÓÃÔÚÁËorder by֮ǰ£¬order by INVERSE_DATE ʵ¼ÊÉÏÊÇusing filesort³öÀ´µÄ¡£¡£º¹ËÀÁË¡£¡£Òò´ËÈç¹ûÎÒÃÇÒªÔÚÓÅ»¯Ò»ÏÂÕâ¸ösql¾ÍÓ¦¸ÃΪËü½¨Á¢ÁíÒ»¸öË÷ÒýIDX£¨ID,INVERSE_DATE£©£¬ÕâÑù¾ÍÏû³ýÁËusing filesortËÙ¶ÈÒ²»á¿ìºÜ¶à¡£ÎÊÌâÖÕÓÚ½â¾öÁË¡£
Ïà¹ØÎĵµ£º
apacheµÄ¾²Ì¬/¶¯Ì¬±àÒëÔÚapache+php+mysqlµÄÓ¦ÓÃ
ÎÒÏë´ó¼ÒÓв»ÉÙ¶¼³É¹¦ÊµÏÖapache+php+mysql£¬ÍøÉϵÄÎÄÕÂÒ²Óв»ÉÙ£¬µ«ÎÒ·¢ÏÖ²»ÉÙÎÄÕ¶¼ÊdzÀ´³È¥£¬²¢ÇÒ
ûÓÐ˵Ã÷°×±àÒëµÄ·½Ê½£¬ÓеÄË÷ÐÔapache1.3µÄ±àÒë·½·¨Ô·â²»¶¯µÄ°á¹ýÀ´Ì×ÔÚapache2.0£¬ÏÔÈ»Îóµ¼Ò»Ð©²ËÄñ £¡
ÎÒ½ñÌì¾ÍÒÔapache+mysql+php˵һϾ²Ì¬±àÒëºÍDSO¶¯Ì¬±à ......
MySQL showµÄÓ÷¨
a. show tables»òshow tables from database_name; // ÏÔʾµ±Ç°Êý¾Ý¿âÖÐËùÓбíµÄÃû³Æ
b. show databases; // ÏÔʾmysqlÖÐËùÓÐÊý¾Ý¿âµÄÃû³Æ
c. show columns from table_name from database_name; »òshow columns from database_name.table_name; ......
ÎÒÓõÄÊÇmysql5.0£¬
ÎÒ³ÌÐòÖÐÓõ½ÁËÒ»¾äsqlÊÇ
SQL code
select count(DISTINCT id) from Policyinfo p where p.filename not in
(select p2.filename from Policyreadinfo p2 where p2.reader='test')
µ«ÊÇÿ´ÎÔÚ³ÌÐòÖÐÿ´ÎÖ´ÐÐÕâ¾äsqlÊ±ÍøÒ³¾ÍÌØÂý£¬Òª10¶àÃ룬¶øÕâ2¸ö±íµÄ¼Ç¼ÐÐÊýÒ²¾Í1000¶à¶øÒÑ£¬ÎÒ°ÑÕâ¾äsqlµ¥¶ÀÄ ......