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

MYSQLÁÐÀàÐÍÑ¡ÔñÓëMYSQL²éѯЧÂÊ

·¢²¼Ê±¼ä:2007-07-16 00:10:59À´Ô´:ºìÁª×÷Õß:Sourcecode
¡¡¡¡ÒªÑ¡ÔñÓÐÖúÓÚʹ²éѯִÐиü¿ìµÄÁУ¬Ó¦×ñÑ­ÈçϹæÔò£¨ÕâÀ¡°BLOB ÀàÐÍ¡±Ó¦¸ÃÀí½âΪ¼´°üº¬B L O BÒ²°üº¬TEXT ÀàÐÍ£©£º

¡¡¡¡Ê¹Óö¨³¤ÁУ¬²»Ê¹Óÿɱ䳤ÁС£ÕâÌõ×¼Ôò¶Ô±»¾­³£Ð޸ģ¬´Ó¶øÈÝÒײúÉúËéƬµÄ±íÀ´ËµÌرðÖØÒª¡£ÀýÈ磬Ӧ¸ÃÑ¡ÔñCHAR Áжø²»Ñ¡ÔñVARCHAR ÁС£ËùҪȨºâµÄÊÇʹÓö¨³¤ÁÐʱ£¬±íËùÕ¼ÓõĿռä¸ü¶à£¬µ«Èç¹ûÄܹ»³Ðµ£ÕâÖÖ¿Õ¼äµÄºÄ·Ñ£¬Ê¹Óö¨³¤Ðн«±ÈʹÓÿɱ䳤µÄÐд¦Àí¿ìµÃ¶à¡£

¡¡¡¡Ôڽ϶̵ÄÁÐÄܹ»Âú×ãÒªÇóʱ²»ÒªÊ¹Óýϳ¤µÄÁС£Èç¹ûÕýʹÓõÄÊǶ¨³¤µÄCHAR ÁУ¬Ó¦¸ÃʹËüÃǾ¡Á¿¶Ì¡£Èç¹ûÁÐÖÐËù´æ´¢µÄ×ֵΪ40 ¸ö×Ö·û£¬ÄÇô¾Í²»Òª½«Æ䶨ÒåΪCHAR ( 2 5 5 )£»Ö»Òª¶¨ÒåΪCHAR(40) ¼´¿É¡£Èç¹ûÄܹ»Ê¹ÓÃMEDIUMINT ¶ø²»ÊÇBIGINT£¬±í½«»á¸üС£¨´ÅÅÌI/O Ò²½ÏÉÙ£©£¬ÆäÖµÔÚ¼ÆËãÖÐÒ²¿ÉÒÔ´¦ÀíµÃ¸ü¿ì¡£

¡¡¡¡½«Áж¨ÒåΪNOT NULL¡£ÕâÑù´¦Àí¸ü¿ì£¬ËùÐè¿Õ¼ä¸üÉÙ¡£¶øÇÒÓÐʱ»¹Äܼò»¯²éѯ£¬ÒòΪ²»ÐèÒª¼ì²éÊÇ·ñ´æÔÚÌØÀýNULL¡£

¡¡¡¡¿¼ÂÇʹÓÃENUM ÁС£Èç¹ûÓÐÒ»¸öÖ»º¬ÓÐÏÞÊýÄ¿µÄÌض¨ÖµµÄÁУ¬ÄÇôӦ¸Ã¿¼Âǽ«Æäת»»ÎªENUM ÁС£ENUM ÁеÄÖµ¿ÉÒÔ¸ü¿ìµØ´¦Àí£¬ÒòΪËüÃÇÔÚÄÚ²¿ÊÇÒÔÊýÖµ±íʾµÄ¡£

¡¡¡¡Ê¹ÓÃPROCEDURE ANALYSE( )¡£Èç¹ûʹÓõÄÊÇMySQL3.23 »ò¸üеİ汾£¬Ó¦¸ÃÖ´ÐÐPROCEDURE ANALYSE( )£¬²é¿´ËüËùÌṩµÄ¹ØÓÚ±íÖÐÁеÄÐÅÏ¢£º

¡¡¡¡ÏàÓ¦Êä³öÖÐÓÐÒ»ÁÐÊǹØÓÚ±íÖÐÿÁеÄ×î¼ÑÁÐÀàÐ͵Ľ¨Òé¡£µÚ¶þ¸öÀý×ÓÒªÇóPROCEDURE ANALYSE( ) ²»Òª½¨Ò麬ÓжàÓÚ16 ¸öÖµ»òÈ¡¶àÓÚ256 ×Ö½ÚµÄENUM ÀàÐÍ£¨¿É¸ù¾ÝÐèÒª¸ü¸ÄÕâЩֵ£©¡£Èç¹ûûÓÐÕâÑùµÄÏÞÖÆ£¬Êä³ö¿ÉÄÜ»áºÜ³¤£»ENUM µÄ¶¨ÒåÒ²»áºÜÄÑÔĶÁ¡£¸ù¾ÝPROCEDURE ANALYSE( ) µÄÊä³ö£¬»á·¢ÏÖ¿ÉÒÔ¶Ô±í½øÐиü¸ÄÒÔÀûÓøüÓÐЧµÄÀàÐÍ¡£Èç¹ûÏ£Íû¸ü¸ÄÖµÀàÐÍ£¬Ê¹ÓÃALTER TABLE Óï¾ä¼´¿É¡£

¡¡¡¡½«Êý¾Ý×°ÈëB L O B¡£ÓÃBLOB ´æ´¢Ó¦ÓóÌÐòÖаü×°»òδ°ü×°µÄÊý¾Ý£¬ÓпÉÄÜʹԭÀ´ÐèÒª¼¸¸ö¼ìË÷²Ù×÷²ÅÄÜÍê³ÉµÄÊý¾Ý¼ìË÷µÃÒÔÔÚµ¥¸ö¼ìË÷²Ù×÷ÖÐÍê³É¡£¶øÇÒ»¹¶Ô´æ´¢±ê×¼±í½á¹¹²»Ò×±íʾµÄÊý¾Ý»òËæʱ¼ä±ä»¯µÄÊý¾ÝÓаïÖú¡£ÔÚµÚ3 ÕÂALTER TABLE Óï¾äµÄ½éÉÜÖУ¬ÓÐÒ»¸öÀý×Ó´¦Àí´æ´¢À´×ÔWeb ÎʾíµÄ½á¹ûµÄ±í¡£¸ÃÀý×ÓÖÐÌÖÂÛÁËÔÚÎʾíÖÐÔö¼ÓÎÊÌâʱ£¬ÔõÑùÀûÓÃALTER TABLE Ïò¸Ã±í×·¼ÓÁС£

¡¡¡¡½â¾ö¸ÃÎÊÌâµÄÁíÒ»¸ö·½·¨ÊÇÈô¦ÀíWeb µÄÓ¦ÓóÌÐò½«Êý¾Ý°ü×°³ÉijÖÖÊý¾Ý½á¹¹£¬È»ºó½«Æä²åÈëµ¥¸öBLOB ÁС£ÕâÑù»áÔö¼ÓÓ¦ÓóÌÐò¶ÔÊý¾Ý½øÐнâÂëµÄ¿ªÏú£¨¶øÇÒ´Ó±íÖмìË÷³ö¼Ç¼ºóÒª¶ÔÆä½øÐбàÂ룩£¬µ«ÊǼò»¯Á˱íµÄ½á¹¹£¬²¢ÇÒ²»ÓÃÔÚ¸ü¸ÄÎʾíʱ¶Ô±í½øÐиü¸Ä¡£ÁíÒ»·½Ã棬 BLOB ÖµÒ²ÓÐ×Ô¼ºµÄ¹ÌÓÐÎÊÌ⣬ÌرðÊÇÔÚ½øÐдóÁ¿µÄDELETE »òUPDATE ²Ù×÷ʱ¸üÊÇÈç´Ë¡£É¾³ýBLOB »áÔÚ±íÖÐÁôÏÂÒ»¸ö´ó¿Õ°×£¬ÔÚÒÔºó½«ÐèÓÃÒ»¸ö¼Ç¼»ò¿ÉÄÜÊDz»Í¬´óСµÄ¶à¸ö¼Ç¼À´Ìî³ä¡£

¡¡¡¡¶ÔÈÝÒײúÉúËéƬµÄ±íʹÓÃOPTIMIZE TABLE¡£´óÁ¿½øÐÐÐÞ¸ÄµÄ±í£¬ÌرðÊÇÄÇЩº¬Óпɱ䳤ÁÐµÄ±í£¬ÈÝÒײúÉúËéƬ¡£ËéƬ²»ºÃ£¬ÒòΪËüÔÚ´æ´¢±íµÄ´ÅÅÌ¿éÖвúÉú²»Ê¹ÓõĿռ䡣Ëæ×Åʱ¼äµÄÔö³¤£¬±ØÐë¶ÁÈ¡¸ü¶àµÄ¿é²ÅÄÜÈ¡µ½ÓÐЧµÄÐУ¬´Ó¶ø½µµÍÁËÐÔÄÜ¡£ÈÎÒâ¾ßÓпɱ䳤ÐÐµÄ±í¶¼´æÔÚÕâ¸öÎÊÌ⣬µ«Õâ¸öÎÊÌâ¶ÔBLOB ÁиüΪͻ³ö£¬ÒòΪËüÃdzߴçµÄ±ä»¯·Ç³£´ó¡£¾­³£Ê¹ÓÃOPTIMIZE TABLE ÓÐÖúÓÚ±£³ÖÐÔÄܲ»Ï½µ¡£

¡¡¡¡Ê¹ÓúϳÉË÷Òý¡£ºÏ³ÉË÷ÒýÁÐÓÐʱºÜÓÐÓá£Ò»ÖÖ¼¼ÊõÊǸù¾ÝÆäËûÁн¨Á¢Ò»¸öÉ¢ÁÐÖµ£¬²¢½«Æä´æ´¢ÔÚÒ»¸ö¶ÀÁ¢µÄÁÐÖУ¬È»ºó¿Éͨ¹ýËÑË÷É¢ÁÐÖµÕÒµ½ÐС£ÕâÖ»¶Ô¾«È·Æ¥ÅäµÄ²éѯÓÐЧ¡££¨É¢ÁÐÖµ¶Ô¾ßÓÐÖîÈç¡° <¡±»ò¡° > =¡±ÕâÑùµÄ²Ù×÷·ûµÄ·¶Î§ËÑË÷ûÓÐÓô¦£©¡£ÔÚMySQL3.23°æ¼°ÒÔÉÏ°æ±¾ÖУ¬É¢ÁÐÖµ¿ÉÀûÓÃMD5( ) º¯Êý²úÉú¡£É¢ÁÐË÷Òý¶ÔBLOB ÁÐÌرðÓÐÓá£ÓÐÒ»ÊÂҪעÒ⣬ÔÚMySQL3.23.2 ÒÔÇ°µÄ°æ±¾ÖУ¬²»ÄÜË÷ÒýBLOB ÀàÐÍ¡£ÉõÖÁÊÇÔÚ3.23.2 »ò¸üеİ汾ÖУ¬ÀûÓÃÉ¢ÁÐÖµ×÷Ϊ±êʶֵÀ´²éÕÒBLOB ÖµÒ²±ÈËÑË÷BLOB Áб¾Éí¸ü¿ì¡£

¡¡¡¡³ý·ÇÓбØÒª£¬·ñÔòÓ¦±ÜÃâ¼ìË÷½Ï´óµÄBLOB »òTEXT Öµ¡£ÀýÈ磬³ý·Ç¿Ï¶¨WHERE ×Ó¾äÄܹ»½«½á¹ûÇ¡ºÃÏÞÖÆÔÚËùÏëÒªµÄÐÐÉÏ£¬·ñÔòSELECT * ²éѯ²»ÊÇÒ»¸öºÃ°ì·¨¡£ÕâÑù×ö¿ÉÄܻὫ·Ç³£´óµÄBLOB ÖµÎÞÄ¿µÄµØ´ÓÍøÂçÉÏÍϹýÀ´¡£ÕâÊÇ´æ´¢ÔÚÁíÒ»ÁÐÖеÄBLOB ±êʶÐÅÏ¢ºÜÓÐÓõÄÁíÒ»ÖÖÇéÐΡ£¿ÉÒÔËÑË÷¸ÃÁÐÒÔÈ·¶¨ÏëÒªµÄÐУ¬È»ºó´ÓÏÞ¶¨µÄÐÐÖмìË÷BLOB Öµ¡£

¡¡¡¡½«BLOB Öµ¸ôÀëÔÚÒ»¸ö¶ÀÁ¢µÄ±íÖС£ÔÚijЩÇé¿öÏ£¬½«BLOB ÁдӱíÖÐÒƳö·ÅÈëÁíÒ»¸ö¸±±í¿ÉÄܾßÓÐÒ»¶¨µÄÒâÒ壬Ìõ¼þÊÇÒƳöBLOB Áкó¿É½«±íת»»Îª¶¨³¤Ðиñʽ¡£ÕâÑù»á¼õÉÙÖ÷±íÖеÄËéƬ£¬¶øÇÒÄÜÀûÓö¨³¤ÐеÄÐÔÄÜÓÅÊÆ¡£
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 0 ÌõÆÀÂÛ