µ±Ç°Î»ÖãºÖ÷Ò³ > ²é¿´ÄÚÈÝ

CTO˵ÁË£¬deleteºó²»¼Ólimit£¬Ö±½Ó¹öµ°£¡

·¢²¼Ê±¼ä£º2021-04-27 00:00| ÓРλÅóÓѲ鿴

¼ò½é£ºÔÚÒµÎñ³¡¾°ÒªÇó¸ßµÄÊý¾Ý¿âÖУ¬¶ÔÓÚµ¥Ìõɾ³ýºÍ¸üвÙ×÷£¬ÔÚ delete ºÍ update ºóÃæ¼Ó limit 1 ¾ø¶ÔÊǸöºÃÏ°¹ß¡£ ͼƬÀ´×Ô Pexels ±ÈÈ磬ÔÚɾ³ýÖ´ÐÐÖУ¬µÚÒ»Ìõ¾ÍÃüÖÐÁËɾ³ýÐУ¬Èç¹û SQL ÖÐÓÐ limit 1;Õâʱ¾Í return ÁË£¬·ñÔò»¹»áÖ´ÐÐÍêÈ«±íɨÃè²Å return¡£Ð§ÂÊ¡­¡­

ÔÚÒµÎñ³¡¾°ÒªÇó¸ßµÄÊý¾Ý¿âÖУ¬¶ÔÓÚµ¥Ìõɾ³ýºÍ¸üвÙ×÷£¬ÔÚ delete ºÍ update ºóÃæ¼Ó limit 1 ¾ø¶ÔÊǸöºÃÏ°¹ß¡£

ͼƬÀ´×Ô Pexels

±ÈÈ磬ÔÚɾ³ýÖ´ÐÐÖУ¬µÚÒ»Ìõ¾ÍÃüÖÐÁËɾ³ýÐУ¬Èç¹û SQL ÖÐÓÐ limit 1;Õâʱ¾Í return ÁË£¬·ñÔò»¹»áÖ´ÐÐÍêÈ«±íɨÃè²Å return¡£Ð§Âʲ»ÑÔ¶øÓ÷¡£

ÄÇô£¬ÔÚÈÕ³£Ö´ÐÐ delete ʱ£¬ÎÒÃÇÊÇ·ñÐèÒªÑø³É¼Ó limit µÄÏ°¹ßÄØ?ÊDz»ÊÇÒ»¸öºÃÏ°¹ßÄØ?

ÔÚÈÕ³£µÄ SQL ±àдÖУ¬Äãд delete Óï¾äʱÊÇ·ñÓõ½¹ýÒÔÏ SQL?

  1. delete from t where sex = 1 limit 100; 

Äã»òÐíûÓÐÓùý£¬ÔÚÒ»°ã³¡¾°Ï£¬ÎÒÃÇ¶Ô delete ºóÊÇ·ñÐèÒª¼Ó limit µÄÎÊÌâºÜÄ°Éú£¬Ò²²»ÖªÓжà´óÇø±ð£¬½ñÌì´øÄãÀ´Á˽âһϣ¬¼ÇµÃ mark!

дÔÚÇ°Ã棬Èç¹ûÊÇÇå¿Õ±íÊý¾Ý½¨ÒéÖ±½ÓÓà truncate£¬Ð§ÂÊÉÏ truncate Ô¶¸ßÓÚ delete£¬ÒòΪ truncate ²»×ßÊÂÎñ£¬²»»áËø±í£¬Ò²²»»áÉú²ú´óÁ¿ÈÕ־дÈëÈÕÖ¾Îļþ¡£

truncate table table_name ºóÁ¢¿ÌÊÍ·Å´ÅÅ̿ռ䣬²¢ÖØÖà auto_increment µÄÖµ¡£delete ɾ³ý²»ÊÍ·Å´ÅÅ̿ռ䣬µ«ºóÐø insert »á¸²¸ÇÔÚ֮ǰɾ³ýµÄÊý¾ÝÉÏ¡£

ÏÂÃæÖ»ÌÖÂÛ delete ³¡¾°£¬Ê×ÏÈ£¬delete ºóÃæÊÇÖ§³Ö limit ¹Ø¼ü×ֵģ¬µ«½öÖ§³Öµ¥¸ö²ÎÊý£¬Ò²¾ÍÊÇ [limit row_count]£¬ÓÃÓÚ¸æÖª·þÎñÆ÷ÔÚ¿ØÖÆÃüÁî±»·µ»Øµ½¿Í»§¶ËÇ°±»É¾³ýµÄÐеÄ×î´óÖµ¡£

delete limit Óï·¨ÈçÏ£º

  1. delete \[low\_priority\] \[quick\] \[ignore\] from tbl\_name 
  2.   \[where ...\] 
  3.     \[order by ...\] 
  4.       \[limit row\_count\] 

ÖµµÃ×¢ÒâµÄÊÇ£¬order by ±ØÐëÒªºÍ limit ÁªÓ㬷ñÔò¾Í»á±»ÓÅ»¯µô¡£

¼Ó limit µÄµÄÓŵã

  1. delete from t where sex = 1; 

ÒÔÉÏÃæµÄÕâÌõ SQL ΪÀý£º

  • ½µµÍд´í SQL µÄ´ú¼Û£¬¾ÍËãɾ´íÁË£¬±ÈÈç limit 500£¬ÄÇÒ²¾Í¶ªÁË 500 ÌõÊý¾Ý£¬²¢²»ÖÂÃü£¬Í¨¹ý binlog Ò²¿ÉÒԺܿì»Ö¸´Êý¾Ý¡£
  • ±ÜÃâÁ˳¤ÊÂÎñ£¬delete Ö´ÐÐʱ MySQL »á½«ËùÓÐÉæ¼°µÄÐмÓдËøºÍ Gap Ëø(¼ä϶Ëø)£¬ËùÓÐ DML Óï¾äÖ´ÐÐÏà¹ØÐлᱻËøס£¬Èç¹ûɾ³ýÊýÁ¿´ó£¬»áÖ±½ÓÓ°ÏìÏà¹ØÒµÎñÎÞ·¨Ê¹Óá£
  • delete Êý¾ÝÁ¿´óʱ£¬²»¼Ó limit ÈÝÒ×°Ñ CPU ´òÂú£¬µ¼ÖÂԽɾԽÂý¡£

Õë¶ÔÉÏÊöµÚ¶þµã£¬Ç°ÌáÊÇ sex ÉϼÓÁËË÷Òý¡£´ó¼Ò¶¼ÖªµÀ£¬¼ÓËø¶¼ÊÇ»ùÓÚË÷ÒýµÄ£¬Èç¹û sex ×Ö¶ÎûË÷Òý£¬¾Í»áɨÃèµ½Ö÷¼üË÷ÒýÉÏ£¬ÄÇô¾ÍËã sex=1 µÄÖ»ÓÐÒ»Ìõ¼Ç¼£¬Ò²»áËø±í¡£

¶ÔÓÚ delete limit µÄʹÓã¬MySQL ´óÀж¡ÆæÓÐÒ»µÀÌ⣺

Èç¹ûÄãҪɾ³ýÒ»¸ö±íÀïÃæµÄÇ° 10000 ÐÐÊý¾Ý£¬ÓÐÒÔÏÂÈýÖÖ·½·¨¿ÉÒÔ×öµ½£º

µÚÒ»ÖÖ£¬Ö±½ÓÖ´ÐÐ delete from T limit 10000;

µÚ¶þÖÖ£¬ÔÚÒ»¸öÁ¬½ÓÖÐÑ­»·Ö´ÐÐ 20 ´Î delete from T limit 500;

µÚÈýÖÖ£¬ÔÚ 20 ¸öÁ¬½ÓÖÐͬʱִÐÐ delete from T limit 500¡£

ÄãÏÈ¿¼ÂÇһϣ¬ÔÙ¿´¿´¼¸Î»ÀÏÌúµÄ»Ø´ð£º

»Ø´ðÒ»

·½°¸Ò»£¬ÊÂÎñÏà¶Ô½Ï³¤£¬ÔòÕ¼ÓÃËøµÄʱ¼ä½Ï³¤£¬»áµ¼ÖÂÆäËû¿Í»§¶ËµÈ´ý×ÊԴʱ¼ä½Ï³¤¡£

·½°¸¶þ£¬´®Ðл¯Ö´ÐУ¬½«Ïà¶Ô³¤µÄÊÂÎñ·Ö³É¶à´ÎÏà¶Ô¶ÌµÄÊÂÎñ£¬Ôòÿ´ÎÊÂÎñÕ¼ÓÃËøµÄʱ¼äÏà¶Ô½Ï¶Ì£¬ÆäËû¿Í»§¶ËÔڵȴýÏàÓ¦×ÊÔ´µÄʱ¼äÒ²½Ï¶Ì¡£

ÕâÑùµÄ²Ù×÷£¬Í¬Ê±Ò²Òâζ׎«×ÊÔ´·ÖƬʹÓÃ(ÿ´ÎÖ´ÐÐʹÓò»Í¬Æ¬¶ÎµÄ×ÊÔ´)£¬¿ÉÒÔÌá¸ß²¢·¢ÐÔ¡£

·½°¸Èý£¬ÈËΪ×Ô¼ºÖÆÔìËø¾ºÕù£¬¼Ó¾ç²¢·¢Á¿¡£

·½°¸¶þÏà¶Ô±È½ÏºÃ£¬¾ßÌ廹Ҫ½áºÏʵ¼ÊÒµÎñ³¡¾°¡£

»Ø´ð¶þ

²»¿¼ÂÇÊý¾Ý±íµÄ·ÃÎʲ¢·¢Á¿£¬µ¥´¿´ÓÕâ¸öÈý¸ö·½°¸À´¶Ô±ÈµÄ»°¡£

µÚÒ»¸ö·½°¸£¬Ò»´ÎÕ¼ÓõÄËøʱ¼ä½Ï³¤£¬¿ÉÄܻᵼÖÂÆäËû¿Í»§¶ËÒ»Ö±Ôڵȴý×ÊÔ´¡£

µÚ¶þ¸ö·½°¸£¬·Ö³É¶à´ÎÕ¼ÓÃËø£¬´®ÐÐÖ´ÐУ¬²»Õ¼ÓÐËøµÄ¼ä϶ÆäËû¿Í»§¶Ë¿ÉÒÔ¹¤×÷£¬ÀàËÆÓÚÏÖÔÚ¶àÈÎÎñ²Ù×÷ϵͳµÄʱ¼ä·ÖƬµ÷¶È£¬´ó¼Ò·ÖƬʹÓÃ×ÊÔ´£¬²»Ö±½ÓÓ°ÏìʹÓá£

µÚÈý¸ö·½°¸£¬×Ô¼ºÖÆÔìÁËËø¾ºÕù£¬¼Ó¾ç²¢·¢¡£

ÖÁÓÚÑ¡ÄÄÒ»ÖÖ·½°¸Òª½áºÏʵ¼Ê³¡¾°£¬×ۺϿ¼ÂǸ÷¸öÒòËØ°É£¬±ÈÈç±íµÄ´óС£¬²¢·¢Á¿£¬ÒµÎñ¶Ô´Ë±íµÄÒÀÀµ³Ì¶ÈµÈ¡£

»Ø´ðÈý

¢ÙÖ±½Ó delete 10000 ¿ÉÄÜʹµÃÖ´ÐÐÊÂÎñʱ¼ä¹ý³¤¡£

¢ÚЧÂÊÂýµãÿ´ÎÑ­»·¶¼ÊÇеĶÌÊÂÎñ£¬²¢ÇÒ²»»áËøͬһÌõ¼Ç¼£¬Öظ´Ö´ÐÐ DELETE ÖªµÀÓ°ÏìÐÐΪ 0 ¼´¿É¡£

¢ÛЧÂÊËä¸ß£¬µ«ÈÝÒ×ËøסͬһÌõ¼Ç¼£¬·¢ÉúËÀËøµÄ¿ÉÄÜÐԱȽϸߡ£

Ôõôɾ³ý±íµÄÇ° 10000 ÐС£±È½Ï¶àµÄÅóÓѶ¼Ñ¡ÔñÁ˵ڶþÖÖ·½Ê½£¬¼´£ºÔÚÒ»¸öÁ¬½ÓÖÐÑ­»·Ö´ÐÐ 20 ´Î delete from T limit 500¡£

ȷʵÊÇÕâÑùµÄ£¬µÚ¶þÖÖ·½Ê½ÊÇÏà¶Ô½ÏºÃµÄ¡£

µÚÒ»ÖÖ·½Ê½(¼´£ºÖ±½ÓÖ´ÐÐ delete from T limit 10000)ÀïÃ棬µ¥¸öÓï¾äÕ¼ÓÃʱ¼ä³¤£¬ËøµÄʱ¼äÒ²±È½Ï³¤;¶øÇÒ´óÊÂÎñ»¹»áµ¼ÖÂÖ÷´ÓÑÓ³Ù¡£

µÚÈýÖÖ·½Ê½(¼´£ºÔÚ 20 ¸öÁ¬½ÓÖÐͬʱִÐÐ delete from T limit 500)£¬»áÈËΪÔì³ÉËø³åÍ»¡£

Õâ¸öÀý×Ó¶ÔÎÒÃÇʵ¼ùµÄÖ¸µ¼ÒâÒå¾ÍÊÇ£¬ÔÚɾ³ýÊý¾ÝµÄʱºò¾¡Á¿¼Ó limit¡£ÕâÑù²»½ö¿ÉÒÔ¿ØÖÆɾ³ýÊý¾ÝµÄÌõÊý£¬ÈòÙ×÷¸ü°²È«£¬»¹¿ÉÒÔ¼õС¼ÓËøµÄ·¶Î§¡£

ËùÒÔ£¬ÔÚ delete ºó¼Ó limit ÊǸöÖµµÃÑø³ÉµÄºÃÏ°¹ß¡£

×÷Õߣº³Â¹þ¹þ

¼ò½é£ºMySQL ÉçÇøµÄ·ÇÖøÃû¹±Ï×Õߣ¬ÉÆÓÚ°×æÎ֪ʶ;Åã°é MySQL ÎåÄ꣬ÖÂÁ¦ÓÚ¸ßÐÔÄÜ SQL¡¢ÊÂÎñËøÓÅ»¯·½ÃæµÄÑо¿;³¤Â·ÂþÂþ£¬Ï£Íûͨ¹ý×Ô¼ºµÄ·ÖÏíÈôó¼ÒÉÙ²ÈһЩ¿Ó¡£ÎÒÊdz¹þ¹þ£¬Ò»¸ö°®Ð¦µÄ³ÌÐòÔ±¡£

±à¼­£ºÌÕ¼ÒÁú

³ö´¦£º×ªÔØ×Ô¹«ÖںŠMySQL ½­ºþ·(ID£ºmysql_chenhaha)


±¾ÎÄתÔØ×ÔÍøÂ磬ԭÎÄÁ´½Ó£ºhttps://mp.weixin.qq.com/s/VZsgpMlLNyzObCa6NZ06iQ
±¾Õ¾²¿·ÖÄÚÈÝתÔØÓÚÍøÂ磬°æȨ¹éÔ­×÷ÕßËùÓУ¬×ªÔØ֮ĿµÄÔÚÓÚ´«²¥¸ü¶àÓÅÐã¼¼ÊõÄÚÈÝ£¬ÈçÓÐÇÖȨÇëÁªÏµQQ/΢ÐÅ£º153890879ɾ³ý£¬Ð»Ð»£¡

ÍƼöͼÎÄ

  • ÖÜÅÅÐÐ
  • ÔÂÅÅÐÐ
  • ×ÜÅÅÐÐ

Ëæ»úÍƼö