Ò׽ؽØͼÈí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

MySQLÖ®Covering Index hust ei


http://hi.baidu.com/thinkinginlamp/blog/item/a352918fe70d96fd503d925e.html
2009Äê01ÔÂ12ÈÕ ÐÇÆÚÒ» ÏÂÎç 08:35
×÷ÕߣºÀÏÍõ
ÔÚÍøÉÏËæ±ãËÑËÑ£¬¾ÍÄÜÕÒµ½´ó°ÑµÄ¹ØÓÚMySQLÓÅ»¯µÄÎÄÕ£¬²»¹ýÀïÃæºÜ¶à¶¼²»×¼È·£¬Ëµ¸ö³£¼ûµÄ£º
SELECT a from ... WHERE b = ...
Ò»°ãÀ´Ëµ£¬ºÜ¶àÎÄÕ»á¸æ½ëÄãÀàËÆÕâÑùµÄ²éѯ£¬²»ÒªÔÚ“a”×Ö¶ÎÉϽ¨Á¢Ë÷Òý£¬¶øÓ¦¸ÃÔÚ“b”ÉϽ¨Á¢Ë÷Òý¡£ÕâÑù×öȷʵ²»´í£¬µ«ÊǺܶàʱºòÕâ²¢²»ÊÇ×î¼Ñ½á¹û¡£ÎªÊ²Ã´ÕâÑù˵£¿ÈÃÎÒÃÇÏÈÀ´·ÖÎöһϲéѯµÄ´¦Àí¹ý³Ì£ºÔÚÖ´Ðвéѯʱ£¬ÏµÍ³»á²éѯ“b”Ë÷Òý½øÐж¨Î»£¬È»ºóÔÙÀûÓô˶¨Î»È¥±íÀï²éѯÐèÒªµÄÊý¾Ý“a”¡£Ò²¾ÍÊÇ˵£¬ÔÚÕâ¸ö¹ý³ÌÖдæÔÚÁ½´Î²éѯ£¬Ò»´ÎÊDzéѯË÷Òý£¬ÁíÒ»´ÎÊDzéѯ±í¡£ÄÇÓÐûÓа취ÓÃÒ»´Î²éѯ¸ã¶¨ÎÊÌâÄØ£¿ÓУ¬¾ÍÊÇCovering Index£¡ËùνCovering Index£¬¾ÍÊÇ˵²»±Ø²éѯ±íÎļþ£¬µ¥¿¿²éѯË÷ÒýÎļþ¼´¿ÉÍê³É¡£¾ßÌåµ½´ËÀýÖоÍÊǽ¨Á¢Ò»¸ö¸´ºÏË÷Òý“b, a”£¬µ±²éѯ½øÐÐʱ£¬Í¨¹ý¸´ºÏË÷ÒýµÄ“b”²¿·ÖÈ¥¶¨Î»£¬ÖÁÓÚÐèÒªµÄÊý¾Ý“a”£¬Á¢¿Ì¾Í¿ÉÒÔÔÚË÷ÒýÀïµÃµ½£¬´Ó¶øÊ¡ÂÔÁ˱í²éѯµÄ¹ý³Ì¡£
Èç¹ûÄãÏëÀûÓÃCovering Index£¬ÄÇô¾ÍҪעÒâSELECT·½Ê½£¬Ö»SElECT±ØÒªµÄ×ֶΣ¬Ç§Íò±ðSELECT *£¬ÒòΪÎÒÃDz»Ì«¿ÉÄÜ°ÑËùÓеÄ×Ö¶ÎÒ»Æð×öË÷Òý£¬ËäÈ»¿ÉÒÔÄÇÑù×ö£¬µ«ÄÇÑù»áÈÃË÷ÒýÎļþ¹ý´ó£¬½á¹û·´µ¹»áŪÇɳÉ×¾¡£
ÈçºÎ²ÅÄÜÈ·ÈϲéѯʹÓÃÁËCovering IndexÄØ£¿ºÜ¼òµ¥£¬Ê¹ÓÃexplain¼´¿É£¡Ö»ÒªÔÚExtraÀï³öÏÖUsing index¾Í˵Ã÷ʹÓõÄÊÇCovering Index¡£
ÖªµÀÁËÒÔÉÏÕâЩ֪ʶ£¬¹À¼Æ¶ÔCoverging IndexµÄÁ˽âÒ²²î²»¶àÁË¡£ÔÙ¾ÙÁ½¸öÀý×Ó£¬Èôó¼ÒÓ¡ÏóÉîµã£º
£¨Ò»£©±ÈÈç˵ÔÚÎÄÕÂϵͳÀïͳ¼Æ×ÜÊýµÄʱºò£¬Ò»°ãµÄ²éѯÊÇÕâÑùµÄ£º
SELECT COUNT(*) from articles WHERE category_id = ...
µ±ÎÒÃÇÔÚcategory_id½¨Á¢Ë÷Òýºó£¬Õâ¸ö²éѯʹÓõľÍÊÇCovering Index¡£
²Î¿¼Îĵµ£ºCOUNT(*) vs COUNT(col)
£¨¶þ£©±ÈÈç˵ÔÚÎÄÕÂϵͳÀï·ÖÒ³ÏÔʾµÄʱºò£¬Ò»°ãµÄ²éѯÊÇÕâÑùµÄ£º
SELECT id, title, content from article ORDER BY created DESC LIMIT 10000, 10;
ͨ³£ÕâÑùµÄ²éѯ»á°ÑË÷Òý½¨ÔÚcreated×ֶΣ¨ÆäÖÐidÊÇÖ÷¼ü£©£¬²»¹ýµ±LIMITÆ«Òƺܴóʱ£¬²éѯЧÂÊÈÔÈ»ºÜµÍ£¬¸Ä±äһϲéѯ£º
SELECT id, title, content from article
INNER JOIN (
    SELECT id from article ORDER BY created DESC LIMIT 10000, 10
) AS page USING(id)
´Ëʱ£¬½¨Á¢¸´ºÏË÷Òý"created,


Ïà¹ØÎĵµ£º

mysql³£ÓÃÖ¸ÁºÏ


Java´úÂë
mysql> select version(),current_date;   
²éѯmysqlµÄ°æ±¾ºÅ ºÍ  ÈÕÆÚ   
mysql> select version();   
²éѯmysqlµÄ°æ±¾ºÅ   
select now();   
²éѯµ±Ç°ÈÕÆÚºÍ׼ȷµÄʱ¼ä  
Java ......

MysqlµÄÐÐËø»úÖÆ


<!-- [if gte mso 10]>
ÒÔÏÂÄÚÈÝÀ´×ÔÍøÂ磬ÒѲâÊÔ¡£
½áÂÛ£º
mysql
ÐÐËø²»°²È«£¬ËæÊý¾ÝµÄ±ä»¯£¬¿ÉÄÜ»á³öÏÖÐÐËøÎÞЧ£¡Òò´Ë£¬·ÇÈ·¶¨Çé¿öÏ£¬²»Òª¶Ô
mysql
±í¼ÓÐÐËøÀ´¿ØÖÆÒµÎñÂß¼­¡£
ÓÉÓÚÒµÎñÂß¼­µÄÐèÒª£¬±ØÐë¶ÔÊý¾Ý±íµÄÒ»Ðлò¶àÐмÓÈëÐÐËø£¬¾Ù¸ö×î¼òµ¥µÄÀý×Ó£¬Í¼Êé½èÔÄϵͳ¡£¼ÙÉè
id=1
µÄÕâ±¾Êé¿â´æΪ
1
£ ......

Apache::DBIÓëMYsqlµÄ³ÖÐøÁ¬½ÓÌ«¶àµÄÎÊÌâ

ÎÒ¾­¹ýÕ⼸ÌìÑо¿·¢ÏÖmod_perlÌṩµÄ³ÖÐøÁ¬½Ó²¢²»ÖÇÄÜ£¨Ò²ÐíÊÇÎÒ»¹Ã»ÓÐÕÒµ½¸ü
ºÃµÄ½â¾ö·½°¸£©£¬Èç¹û½Å±¾ÖеIJÎÊýºÍ³õʼ»¯µÄ²ÎÊý²»Ò»Ñù£¬ÔÚÄÚ´æÖлá³öÏÖÁ½¸ö
¾ä±ú¡£
Apache::DBI->connect_on_init("DBI:mysql:mysql:localhost","root","root",
{
PrintError => 1,
RaiseError => 0,
AutoCommit => ......

show innodb status (mysql)


µ±Ç°»îÔ¾µÄÊÂÎñ:
------------
TRANSACTIONS
------------
Trx id counter080157601
Purge done for trx's n:o <0 80154573 undo n:o <0 0
History list length 6
Total number of lock structs in row lock hash table 0
LIST OF TRANSACTIONS FOR EACH SESSION:
---TRANSACTION 0 0, not started, proce ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ