SQL Óï¾äÓÅ»¯
hust ei
JOINÓÅ»¯
MySQLÖÐjoinµÄʵÏÖ²ÉÓõÄÊÇNested Loop JoinËã·¨¡£Í¨¹ýÇý¶¯±íµÄ½á¹û¼¯×÷Ϊѻ·»ù´¡Êý¾Ý£¬È»ºó½«¸Ã½á¹û¼¯ÖеÄÊý¾Ý×÷Ϊ¹ýÂË
Ìõ¼þÒ»ÌõÌõµÄµ½ÏÂÒ»¸ö±íÖвéѯÊý¾Ý£¬×îºóºÏ²¢½á¹û£¬Èç¹û´æÔÚºóÐø±í£¬¹ý³ÌÒ²Èç´Ë¡£
¾¡Á¿¼õÉÙjoinÓï¾äÖÐnested loopÑ»·µÄ´ÎÊý¡£×îÓÐЧµÄ·½·¨ÊÇÈÃÇý¶¯±íµÄ½á¹û¼¯¾¡¿ÉÄܵÄС
ÓÅÏÈÓÅ»¯nested loopÖеÄÄÚ²ãÑ»·
±£Ö¤joinÓï¾äÖб»Çý¶¯±íµÄjoin×Ö¶ÎÒѾ±»Ë÷Òý
Èç¹ûÎÞ·¨Âú×ã3£¬ÇÒÄÚ²ã×ÊÔ´³ä×ãʱ£¬ºÏÀíÉèÖÃjoin buffer£¨join_buffer_size²ÎÊý£©
ORDER BY ÓÅ»¯
ORDER BYµÄʵÏÖÓÐ2ÖÖ£¬Ò»ÖÖÊÇͨ¹ýÓÐÐòË÷ÒýÖ±½ÓÈ¡µÃÓÐÐòµÄÊý¾Ý£»ÁíÍâÒ»ÖÖÔòÐëͨ¹ýMySQLÅÅÐòËã·¨½«´æ´¢ÒýÇæ·µ»ØµÄÊý¾Ý½øÐÐ
ÅÅÐòºó£¬ÔÚ·µ»Ø¸øÓû§¡£
ÀûÓÃË÷ÒýʵÏÖÅÅÐòÊÇMySQLÖÐʵÏÖ½á¹û¼¯ÅÅÐòµÄ×î¼Ñ·½·¨£¬ËùÒÔÔÚÓÅ»¯ORDER BYʱ£¬¾¡¿ÉÄܵÄÀûÓÃÒÑÓеÄË÷ÒýÀ´±ÜÃâʵ¼ÊµÄÅÅÐò£¬
ÉõÖÁ¿ÉÒÔÔö¼ÓË÷Òý×ֶΡ£
µ±Ã»ÓÐË÷Òý¿ÉÓÃʱ£¬MySQLÓÐÒÔϵķ½·¨À´Íê³ÉÅÅÐò£º
È¡³öÂú×ã¹ýÂËÌõ¼þµÄ×÷ΪÅÅÐòÌõ¼þµÄ×ֶΣ¬ÒÔ¼°¿ÉÒÔ¶¨Î»µ½ÐÐÊý¾ÝµÄÐÐÖ¸ÕëÐÅÏ¢£¬ÔÚsort bufferÖнøÐÐʵ¼ÊµÄÅÅÐò£¬È»ºóÀûÓÃÅÅÐòºÃµÄÊý¾Ý¸ù¾ÝÐÐÖ¸ÕëÐÅÏ¢·µ»Ø±íÖÐÈ¡µÃ¿Í»§¶ËÆäËûµÄÇëÇó×Ö¶ÎÊý¾Ý
¸ù¾Ý¹ýÂËÌõ¼þÒ»´ÎÈ¡³öËùÓÐÂú×ãµÄ¿Í»§¶ËÇëÇó×Ö¶ÎÒÔ¼°ÅÅÐò×ֶΣ¬²¢½«²»ÐèÒªÅÅÐòµÄ×ֶηÅÔÚÒ»¿éÄÚ´æÇøÓòÄÚ£¬È»ºóÔÙsort bufferÖн«ÅÅÐò×ֶνøÐÐÅÅÐò£¬×îºóÔÚºÍÆäËûÔÚsort bufferÖÐ×Ö¶Î×éºÏ·µ»Ø¸øÓû§
Ïà¶ÔÀ´Ëµ£¬·½·¨2¿ÉÒÔ¼õÉÙIO£¬µ«ÊÇÐèÒª¸ü¶àµÄÄÚ´æ¿Õ¼ä¡£
ÓÅ»¯Ñ¡Ôñ£º
¼Ó´ómax_length_for_sort_dataÖµ¡£ÒòΪMySQL¸ù¾ÝÕâ¸öÖµÀ´¾ö¶¨ÊÇ·ñʹÓ÷½·¨2.µ±·µ»Ø¸øÓû§µÄ×ֶεÄ×ܳ¤¶ÈСÓÚ¸ÃÖµÊÇ¿ÉÒÔʹÓ÷½·¨2.ËùÒÔÔÚÄÚ´æ¿Õ¼ä³ä×ãʱ£¬Ôö´ó¸ÃÖµ¿ÉÒÔʹÅÅÐò·½·¨2Ö´ÐУ¬´Ó¶ø¸ÄÉÆIO
È¥µô²»±ØÒªµÄ·µ»Ø×Ö¶Î
Ôö´ósort_buffer_sizeµÄ´óС¡£¸ÃÖµ¹ýСµÄ»°£¬»á¶ÔÊý¾Ý·Ö¶ÎµÄÅÅÐò¡£
GROUP BY ÓÅ»¯
MySQLÖÐGROUP BYµÄʵÏÖÓÐ3ÖÐÐÎʽ£¬Ç°2ÖÐʹÓÃË÷ÒýÐÅÏ¢À´GROUP BY£¬×îºóÒ»ÖÖÔòʹÓÃÓÚÍêÈ«ÎÞ·¨Ê¹ÓÃË÷ÒýµÄ³¡¾°¡£
ʹÓÃËÉÉ¢£¨LOOSE£©Ë÷ÒýɨÃèʵÏÖGROUP BY
Æä±¾ÒâÔÚÓÚµ±MySQLÍêÈ«ÀûÓÃË÷ÒýɨÃèÀ´ÊµÏÖGROUP bYʱ£¬²¢²»ÐèҪɨÃèËùÓÐÂú×ãÌõ¼þµÄË÷ÒýÏî¼´¿ÉÍê³É²Ù×÷¡£ÔÚÖ´Ðмƻ®µÄExtraÏî¿ÉÒÔÊä³öÐÅÏ¢“Using index for group-by”
¡£ÕâÖÖʵÏÖÊÇ×î¸ßЧµÄ£¬ÒòΪÌõ¼þ¹ýÂ˵ÄÊä³ö¼´ÊÇÐèÒªµÄ½á¹û¡£ÒªÀûÓø÷½·¨ÐèÂú×ãÒÔÏÂÌõ¼þ£º
GROUP BYÌõ¼þ×ֶαØÐë´¦ÓÚͬһË÷ÒýµÄ×îÇ°ÃæµÄÁ¬Ðø×ֶΣ¨»òÊÇ´æÔڵĵ¥ÁÐË÷Òý£¬µ±¸ÃÌõ¼þ½öΪһÁÐʱ£©
ÔÚʹÓÃÁËGROUP BYµÄÍ
Ïà¹ØÎĵµ£º
sql server ÁÙʱ±íµÄʹÓà ÒÔ¼°¸øÁÙʱ±í²åÈëÖ÷¼üÁÐ
--ijʱ¼ä¶ÎÄÚij×é·þÎñÆ÷µÄÏû·ÑÅÅÐÐ
CREATE PROCEDURE biling_order_consume
@begin_date datetime,
@end_date datetime
AS
select identity(int,1,1) as ID,charge_credit into #tmp from crm_biling
where @begin_date <= convert(datetime,convert( ......
ÎÒÃÇÔÚ¿ª·¢¹ý³ÌÖУ¬¾³£Óöµ½ÕâÑùÎÊÌ⣬¾ÍÊÇÒªÇó¶¨ÆÚ½øÐÐÊý¾Ý¿âµÄ¼ì²é£¬Èç¹û·¢ÏÖÌض¨Êý¾Ý£¬ÄÇô¾ÍÒª½øÐÐijÏî²Ù×÷£¬Õâ¸öÐèÇóÄØ£¬¿ÉÒÔÀûÓÃWindowsµÄ¼Æ»®ÈÎÎñ£¬¶¨ÆÚÖ´ÐÐijһ¸öÓ¦ÓóÌÐò£¬È¥¼ìË÷Êý¾Ý£»Ò²¿ÉÒÔÈóÌÐò×Ô¼º¿ØÖÆ¡£ÆäʵSQL Server×Ô¼ºÒ²¿ÉÒÔ´´½¨¼Æ»®ÈÎÎñ£¬¶¨ÆÚ½øÐÐÖ´ÐС£Èç¹ûÊý¾Ý¿â·þÎñÆ÷ÔÊÐí£¬¿ÉÒÔ¿¼ÂDzÉÓÃÕâÖÖ·½Ê½¡£
......
ºØÖÝÊм²²¡Ô¤·À¿ØÖÆÖÐÐÄËùÓõÄZmSoft´ÓÒµÌå¼ìÐÅÏ¢ÍøÂçϵͳV2010.1.26 Õýʽ°æ²ÉÓÃSQL SERVER2000ƽ̨,²»Ã÷ÔÒò,Êý¾Ý¿â"ÖÃÒÉ“,¿Í»§ÊÔ¹ýËùÓÐÍøÉÏ·½·¨,δÄܽâ¾ö.ÉòÑô¿ÎÄÊý¾Ý»Ö¸´ÖÐÐÄSQLÊý¾Ý¿â¹¤³Ìʦ³É¹¦½«Æä½â¾ö.
ÉòÑô¿ÎÄÊý¾Ý»Ö¸´ÖÐÐÄMS SQL SERVERÑз¢Ð¡×éÖÂÁ¦ÓÚMsSqlÊý¾Ý¿â¼¼ÊõµÄÑо¿¡£¾¹ý¶àÄêÑо¿ÍêÈ«ÕÆÎÕÁËS ......
ºØÖÝÊм²²¡Ô¤·À¿ØÖÆÖÐÐÄËùÓõÄZmSoft´ÓÒµÌå¼ìÐÅÏ¢ÍøÂçϵͳV2010.1.26 Õýʽ°æ²ÉÓÃSQL SERVER2000ƽ̨,²»Ã÷ÔÒò,Êý¾Ý¿â"ÖÃÒÉ“,¿Í»§ÊÔ¹ýËùÓÐÍøÉÏ·½·¨,δÄܽâ¾ö.ÉòÑô¿ÎÄÊý¾Ý»Ö¸´ÖÐÐÄSQLÊý¾Ý¿â¹¤³Ìʦ³É¹¦½«Æä½â¾ö.
ÉòÑô¿ÎÄÊý¾Ý»Ö¸´ÖÐÐÄMS SQL SERVERÑз¢Ð¡×éÖÂÁ¦ÓÚMsSqlÊý¾Ý¿â¼¼ÊõµÄÑо¿¡£¾¹ý¶àÄêÑо¿ÍêÈ«ÕÆÎÕÁËS ......