{"id":4018,"date":"2022-11-16T09:49:55","date_gmt":"2022-11-16T01:49:55","guid":{"rendered":"https:\/\/www.zeroheart.xyz\/wordpress\/?p=4018"},"modified":"2022-11-16T09:49:55","modified_gmt":"2022-11-16T01:49:55","slug":"mysql%e7%9a%84%e4%b8%80%e4%ba%9b%e4%bc%98%e5%8c%96%e6%93%8d%e4%bd%9c%ef%bc%8c%e6%8a%84%e6%9d%a5%e5%a4%87%e5%bf%98","status":"publish","type":"post","link":"https:\/\/www.zeroheart.xyz\/wordpress\/?p=4018","title":{"rendered":"mysql\u7684\u4e00\u4e9b\u4f18\u5316\u64cd\u4f5c\uff0c\u6284\u6765\u5907\u5fd8"},"content":{"rendered":"\n<p>XX \u5b9e\u4f8b\uff08\u4e00\u4e3b\u4e00\u4ece\uff09xxx \u544a\u8b66\u4e2d\u6bcf\u5929\u51cc\u6668\u5728\u62a5 SLA \u62a5\u8b66\uff0c\u8be5\u62a5\u8b66\u7684\u610f\u601d\u662f\u5b58\u5728\u4e00\u5b9a\u7684\u4e3b\u4ece\u5ef6\u8fdf\u3002\uff08\u82e5\u5728\u6b64\u65f6\u53d1\u751f\u4e3b\u4ece\u5207\u6362\uff0c\u9700\u8981\u957f\u65f6\u95f4\u624d\u53ef\u4ee5\u5b8c\u6210\u5207\u6362\uff0c\u8981\u8ffd\u5ef6\u8fdf\u6765\u4fdd\u8bc1\u4e3b\u4ece\u6570\u636e\u7684\u4e00\u81f4\u6027\uff09<\/p>\n\n\n\n<p>XX\u5b9e\u4f8b\u7684\u6162\u67e5\u8be2\u6570\u91cf\u6700\u591a\uff08\u6267\u884c\u65f6\u95f4\u8d85\u8fc7 1s \u7684 SQL \u4f1a\u88ab\u8bb0\u5f55\uff09\uff0cXX \u5e94\u7528\u90a3\u65b9\u6bcf\u5929\u665a\u4e0a\u5728\u505a\u5220\u9664\u4e00\u4e2a\u6708\u524d\u6570\u636e\u7684\u4efb\u52a1\u3002<\/p>\n\n\n\n<p><strong>\u5206\u6790<\/strong><\/p>\n\n\n\n<p>\u4f7f\u7528<code>pt-query-digest<\/code> \u5de5\u5177\u5206\u6790\u6700\u8fd1\u4e00\u5468\u7684 <code>mysql-slow.log<\/code>\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pt-query-digest&nbsp;--since=148h&nbsp;mysql-slow.log&nbsp;|&nbsp;less<br><\/code><\/pre>\n\n\n\n<p>\u7ed3\u679c\u7b2c\u4e00\u90e8\u5206\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"705\" height=\"224\" src=\"https:\/\/www.zeroheart.xyz\/wordpress\/wp-content\/uploads\/2022\/11\/image-2.png\" alt=\"\" class=\"wp-image-4019\" srcset=\"https:\/\/www.zeroheart.xyz\/wordpress\/wp-content\/uploads\/2022\/11\/image-2.png 705w, https:\/\/www.zeroheart.xyz\/wordpress\/wp-content\/uploads\/2022\/11\/image-2-300x95.png 300w\" sizes=\"(max-width: 705px) 100vw, 705px\" \/><\/figure>\n\n\n\n<p>\u6700\u8fd1\u4e00\u4e2a\u661f\u671f\u5185\uff0c\u603b\u5171\u8bb0\u5f55\u7684\u6162\u67e5\u8be2\u6267\u884c\u82b1\u8d39\u65f6\u95f4\u4e3a 25403s\uff0c\u6700\u5927\u7684\u6162 SQL \u6267\u884c\u65f6\u95f4\u4e3a 266s\uff0c\u5e73\u5747\u6bcf\u4e2a\u6162 SQL \u6267\u884c\u65f6\u95f4 5s\uff0c\u5e73\u5747\u626b\u63cf\u7684\u884c\u6570\u4e3a 1766 \u4e07\u3002<\/p>\n\n\n\n<p>\u7ed3\u679c\u7b2c\u4e8c\u90e8\u5206\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"688\" height=\"209\" src=\"https:\/\/www.zeroheart.xyz\/wordpress\/wp-content\/uploads\/2022\/11\/image-3.png\" alt=\"\" class=\"wp-image-4020\" srcset=\"https:\/\/www.zeroheart.xyz\/wordpress\/wp-content\/uploads\/2022\/11\/image-3.png 688w, https:\/\/www.zeroheart.xyz\/wordpress\/wp-content\/uploads\/2022\/11\/image-3-300x91.png 300w\" sizes=\"(max-width: 688px) 100vw, 688px\" \/><\/figure>\n\n\n\n<p><code>select arrival_record<\/code>\u64cd\u4f5c\u8bb0\u5f55\u7684\u6162\u67e5\u8be2\u6570\u91cf\u6700\u591a\u6709 4 \u4e07\u591a\u6b21\uff0c\u5e73\u5747\u54cd\u5e94\u65f6\u95f4\u4e3a 4s\uff0c<code>delete arrival_record<\/code> \u8bb0\u5f55\u4e86 6 \u6b21\uff0c\u5e73\u5747\u54cd\u5e94\u65f6\u95f4 258s\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">select xxx_record \u8bed\u53e5<\/h3>\n\n\n\n<p><code>select arrival_record<\/code> \u6162\u67e5\u8be2\u8bed\u53e5\u90fd\u7c7b\u4f3c\u4e8e\u5982\u4e0b\u6240\u793a\uff0cwhere \u8bed\u53e5\u4e2d\u7684\u53c2\u6570\u5b57\u6bb5\u662f\u4e00\u6837\u7684\uff0c\u4f20\u5165\u7684\u53c2\u6570\u503c\u4e0d\u4e00\u6837\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>select&nbsp;<strong>count<\/strong>(*)&nbsp;from&nbsp;arrival_record&nbsp;where&nbsp;product_id=26&nbsp;and&nbsp;receive_time&nbsp;between&nbsp;'2019-03-25&nbsp;14:00:00'&nbsp;and&nbsp;'2019-03-25&nbsp;15:00:00'&nbsp;and&nbsp;receive_spend_ms&gt;=0\\G<br><\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"717\" height=\"210\" src=\"https:\/\/www.zeroheart.xyz\/wordpress\/wp-content\/uploads\/2022\/11\/image-4.png\" alt=\"\" class=\"wp-image-4021\" srcset=\"https:\/\/www.zeroheart.xyz\/wordpress\/wp-content\/uploads\/2022\/11\/image-4.png 717w, https:\/\/www.zeroheart.xyz\/wordpress\/wp-content\/uploads\/2022\/11\/image-4-300x88.png 300w\" sizes=\"(max-width: 717px) 100vw, 717px\" \/><\/figure>\n\n\n\n<p><code>select arrival_record<\/code> \u8bed\u53e5\u5728 MySQL \u4e2d\u6700\u591a\u626b\u63cf\u7684\u884c\u6570\u4e3a 5600 \u4e07\u3001\u5e73\u5747\u626b\u63cf\u7684\u884c\u6570\u4e3a 172 \u4e07\uff0c\u63a8\u65ad\u7531\u4e8e\u626b\u63cf\u7684\u884c\u6570\u591a\u5bfc\u81f4\u7684\u6267\u884c\u65f6\u95f4\u957f\u3002<\/p>\n\n\n\n<p>\u67e5\u770b\u6267\u884c\u8ba1\u5212\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>explain&nbsp;select&nbsp;<strong>count<\/strong>(*)&nbsp;from&nbsp;arrival_record&nbsp;where&nbsp;product_id=26&nbsp;and&nbsp;receive_time&nbsp;between&nbsp;'2019-03-25&nbsp;14:00:00'&nbsp;and&nbsp;'2019-03-25&nbsp;15:00:00'&nbsp;and&nbsp;receive_spend_ms&gt;=0\\G;<br>***************************&nbsp;1.&nbsp;row&nbsp;***************************<br>id:&nbsp;1<br>select_type:&nbsp;SIMPLE<br>table:&nbsp;arrival_record<br>partitions:&nbsp;NULL<br>type:&nbsp;ref<br>possible_keys:&nbsp;IXFK_arrival_record<br>key:&nbsp;IXFK_arrival_record<br>key_len:&nbsp;8<br>ref:&nbsp;<strong>const<\/strong><br>rows:&nbsp;32261320<br>filtered:&nbsp;3.70<br>Extra:&nbsp;Using&nbsp;index&nbsp;condition;&nbsp;Using&nbsp;where<br>1&nbsp;row&nbsp;in&nbsp;set,&nbsp;1&nbsp;warning&nbsp;(0.00&nbsp;sec)<br><\/code><\/pre>\n\n\n\n<p>\u7528\u5230\u4e86\u7d22\u5f15 <code>IXFK_arrival_record<\/code>\uff0c\u4f46\u9884\u8ba1\u626b\u63cf\u7684\u884c\u6570\u5f88\u591a\u6709 3000 \u591a\u4e07\u884c\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>show&nbsp;index&nbsp;from&nbsp;arrival_record;<br>+----------------+------------+---------------------+--------------+--------------+-----------+-------------+----------+--------+------+------------+---------+---------------+<br>|&nbsp;Table&nbsp;|&nbsp;Non_unique&nbsp;|&nbsp;Key_name&nbsp;|&nbsp;Seq_in_index&nbsp;|&nbsp;Column_name&nbsp;|&nbsp;Collation&nbsp;|&nbsp;Cardinality&nbsp;|&nbsp;Sub_part&nbsp;|&nbsp;Packed&nbsp;|&nbsp;Null&nbsp;|&nbsp;Index_type&nbsp;|&nbsp;Comment&nbsp;|&nbsp;Index_comment&nbsp;|<br>+----------------+------------+---------------------+--------------+--------------+-----------+-------------+----------+--------+------+------------+---------+---------------+<br>|&nbsp;arrival_record&nbsp;|&nbsp;0&nbsp;|&nbsp;PRIMARY&nbsp;|&nbsp;1&nbsp;|&nbsp;id&nbsp;|&nbsp;A&nbsp;|&nbsp;107990720&nbsp;|&nbsp;NULL&nbsp;|&nbsp;NULL&nbsp;|&nbsp;|&nbsp;BTREE&nbsp;|&nbsp;|&nbsp;|<br>|&nbsp;arrival_record&nbsp;|&nbsp;1&nbsp;|&nbsp;IXFK_arrival_record&nbsp;|&nbsp;1&nbsp;|&nbsp;product_id&nbsp;|&nbsp;A&nbsp;|&nbsp;1344&nbsp;|&nbsp;NULL&nbsp;|&nbsp;NULL&nbsp;|&nbsp;|&nbsp;BTREE&nbsp;|&nbsp;|&nbsp;|<br>|&nbsp;arrival_record&nbsp;|&nbsp;1&nbsp;|&nbsp;IXFK_arrival_record&nbsp;|&nbsp;2&nbsp;|&nbsp;station_no&nbsp;|&nbsp;A&nbsp;|&nbsp;22161&nbsp;|&nbsp;NULL&nbsp;|&nbsp;NULL&nbsp;|&nbsp;YES&nbsp;|&nbsp;BTREE&nbsp;|&nbsp;|&nbsp;|<br>|&nbsp;arrival_record&nbsp;|&nbsp;1&nbsp;|&nbsp;IXFK_arrival_record&nbsp;|&nbsp;3&nbsp;|&nbsp;sequence&nbsp;|&nbsp;A&nbsp;|&nbsp;77233384&nbsp;|&nbsp;NULL&nbsp;|&nbsp;NULL&nbsp;|&nbsp;|&nbsp;BTREE&nbsp;|&nbsp;|&nbsp;|<br>|&nbsp;arrival_record&nbsp;|&nbsp;1&nbsp;|&nbsp;IXFK_arrival_record&nbsp;|&nbsp;4&nbsp;|&nbsp;receive_time&nbsp;|&nbsp;A&nbsp;|&nbsp;65854652&nbsp;|&nbsp;NULL&nbsp;|&nbsp;NULL&nbsp;|&nbsp;YES&nbsp;|&nbsp;BTREE&nbsp;|&nbsp;|&nbsp;|<br>|&nbsp;arrival_record&nbsp;|&nbsp;1&nbsp;|&nbsp;IXFK_arrival_record&nbsp;|&nbsp;5&nbsp;|&nbsp;arrival_time&nbsp;|&nbsp;A&nbsp;|&nbsp;73861904&nbsp;|&nbsp;NULL&nbsp;|&nbsp;NULL&nbsp;|&nbsp;YES&nbsp;|&nbsp;BTREE&nbsp;|&nbsp;|&nbsp;|<br>+----------------+------------+---------------------+--------------+--------------+-----------+-------------+----------+--------+------+------------+---------+---------------+<br><br>show&nbsp;create&nbsp;table&nbsp;arrival_record;<br>..........<br>arrival_spend_ms&nbsp;<strong>bigint<\/strong>(20)&nbsp;DEFAULT&nbsp;NULL,<br>total_spend_ms&nbsp;<strong>bigint<\/strong>(20)&nbsp;DEFAULT&nbsp;NULL,<br>PRIMARY&nbsp;<strong>KEY<\/strong>&nbsp;(id),<br>KEY&nbsp;<strong>IXFK_arrival_record<\/strong>&nbsp;(product_id,station_no,sequence,receive_time,arrival_time)&nbsp;USING&nbsp;BTREE,<br>CONSTRAINT&nbsp;FK_arrival_record_product&nbsp;FOREIGN&nbsp;<strong>KEY<\/strong>&nbsp;(product_id)&nbsp;REFERENCES&nbsp;<strong>product<\/strong>&nbsp;(id)&nbsp;ON&nbsp;DELETE&nbsp;NO&nbsp;ACTION&nbsp;ON&nbsp;UPDATE&nbsp;NO&nbsp;ACTION<br>)&nbsp;ENGINE=InnoDB&nbsp;AUTO_INCREMENT=614538979&nbsp;DEFAULT&nbsp;CHARSET=utf8&nbsp;COLLATE=utf8_bin&nbsp;|<br><\/code><\/pre>\n\n\n\n<p>\u2460\u8be5\u8868\u603b\u8bb0\u5f55\u6570\u7ea6 1 \u4ebf\u591a\u6761\uff0c\u8868\u4e0a\u53ea\u6709\u4e00\u4e2a\u590d\u5408\u7d22\u5f15\uff0c<code>product_id<\/code> \u5b57\u6bb5\u57fa\u6570\u5f88\u5c0f\uff0c\u9009\u62e9\u6027\u4e0d\u597d\u3002<\/p>\n\n\n\n<p>\u2461\u4f20\u5165\u7684\u8fc7\u6ee4\u6761\u4ef6\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>where&nbsp;product_id=26&nbsp;and&nbsp;receive_time&nbsp;between&nbsp;'2019-03-25&nbsp;14:00:00'&nbsp;and&nbsp;'2019-03-25&nbsp;15:00:00'&nbsp;and&nbsp;receive_spend_ms&gt;=0<br><\/code><\/pre>\n\n\n\n<p>\u6ca1\u6709<code>station_nu<\/code> \u5b57\u6bb5\uff0c\u4f7f\u7528\u4e0d\u5230\u590d\u5408\u7d22\u5f15 <code>IXFK_arrival_record<\/code> \u7684 <code>product_id<\/code>\uff0c<code>station_no<\/code>\uff0c<code>sequence<\/code>\uff0c<code>receive_time<\/code> \u8fd9\u51e0\u4e2a\u5b57\u6bb5\u3002<\/p>\n\n\n\n<p>\u2462\u6839\u636e\u6700\u5de6\u524d\u7f00\u539f\u5219\uff0c<code>select arrival_record<\/code> \u53ea\u7528\u5230\u4e86\u590d\u5408\u7d22\u5f15 <code>IXFK_arrival_record<\/code> \u7684\u7b2c\u4e00\u4e2a\u5b57\u6bb5 <code>product_id<\/code>\uff0c\u800c\u8be5\u5b57\u6bb5\u9009\u62e9\u6027\u5f88\u5dee\uff0c\u5bfc\u81f4\u626b\u63cf\u7684\u884c\u6570\u5f88\u591a\uff0c\u6267\u884c\u65f6\u95f4\u957f\u3002<\/p>\n\n\n\n<p>\u2463<code>receive_time<\/code> \u5b57\u6bb5\u7684\u57fa\u6570\u5927\uff0c\u9009\u62e9\u6027\u597d\uff0c\u53ef\u5bf9\u8be5\u5b57\u6bb5\u5355\u72ec\u5efa\u7acb\u7d22\u5f15\uff0c<code>select arrival_record sql<\/code> \u5c31\u4f1a\u4f7f\u7528\u5230\u8be5\u7d22\u5f15\u3002<\/p>\n\n\n\n<p>\u73b0\u5728\u5df2\u7ecf\u77e5\u9053\u4e86\u5728\u6162\u67e5\u8be2\u4e2d\u8bb0\u5f55\u7684 <code>select arrival_record where<\/code> \u8bed\u53e5\u4f20\u5165\u7684\u53c2\u6570\u5b57\u6bb5\u6709 <code>product_id<\/code>\uff0c<code>receive_time<\/code>\uff0c<code>receive_spend_ms<\/code>\uff0c\u8fd8\u60f3\u77e5\u9053\u5bf9\u8be5\u8868\u7684\u8bbf\u95ee\u6709\u6ca1\u6709\u901a\u8fc7\u5176\u4ed6\u5b57\u6bb5\u6765\u8fc7\u6ee4\u4e86<\/p>\n\n\n\n<p>\u795e\u5668<code>tcpdump<\/code> \u51fa\u573a\u7684\u65f6\u5019\u5230\u4e86\uff0c\u4f7f\u7528 <code>tcpdump<\/code> \u6293\u5305\u4e00\u6bb5\u65f6\u95f4\u5bf9\u8be5\u8868\u7684 <code>select<\/code> \u8bed\u53e5\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>tcpdump&nbsp;-i&nbsp;bond0&nbsp;-s&nbsp;0&nbsp;-l&nbsp;-w&nbsp;-&nbsp;dst&nbsp;port&nbsp;3316&nbsp;|&nbsp;strings&nbsp;|&nbsp;grep&nbsp;select&nbsp;|&nbsp;egrep&nbsp;-i&nbsp;'arrival_record'&nbsp;&gt;\/tmp\/select_arri.log<br><\/code><\/pre>\n\n\n\n<p>\u83b7\u53d6select \u8bed\u53e5\u4e2d from \u540e\u9762\u7684 where \u6761\u4ef6\u8bed\u53e5\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>IFS_OLD=$IFS<br>IFS=$'\\n'<br><strong>for<\/strong>&nbsp;i&nbsp;in&nbsp;cat&nbsp;\/tmp\/select_arri.log&nbsp;;<strong>do<\/strong>&nbsp;echo&nbsp;${i#*'from'};&nbsp;done&nbsp;|&nbsp;less<br>IFS=$IFS_OLD<br><br>arrival_record&nbsp;arrivalrec0_&nbsp;where&nbsp;arrivalrec0_.sequence='2019-03-27&nbsp;08:40'&nbsp;and&nbsp;arrivalrec0_.product_id=17&nbsp;and&nbsp;arrivalrec0_.station_no='56742'<br>arrival_record&nbsp;arrivalrec0_&nbsp;where&nbsp;arrivalrec0_.sequence='2019-03-27&nbsp;08:40'&nbsp;and&nbsp;arrivalrec0_.product_id=22&nbsp;and&nbsp;arrivalrec0_.station_no='S7100'<br>arrival_record&nbsp;arrivalrec0_&nbsp;where&nbsp;arrivalrec0_.sequence='2019-03-27&nbsp;08:40'&nbsp;and&nbsp;arrivalrec0_.product_id=24&nbsp;and&nbsp;arrivalrec0_.station_no='V4631'<br>arrival_record&nbsp;arrivalrec0_&nbsp;where&nbsp;arrivalrec0_.sequence='2019-03-27&nbsp;08:40'&nbsp;and&nbsp;arrivalrec0_.product_id=22&nbsp;and&nbsp;arrivalrec0_.station_no='S9466'<br>arrival_record&nbsp;arrivalrec0_&nbsp;where&nbsp;arrivalrec0_.sequence='2019-03-27&nbsp;08:40'&nbsp;and&nbsp;arrivalrec0_.product_id=24&nbsp;and&nbsp;arrivalrec0_.station_no='V4205'<br>arrival_record&nbsp;arrivalrec0_&nbsp;where&nbsp;arrivalrec0_.sequence='2019-03-27&nbsp;08:40'&nbsp;and&nbsp;arrivalrec0_.product_id=24&nbsp;and&nbsp;arrivalrec0_.station_no='V4105'<br>arrival_record&nbsp;arrivalrec0_&nbsp;where&nbsp;arrivalrec0_.sequence='2019-03-27&nbsp;08:40'&nbsp;and&nbsp;arrivalrec0_.product_id=24&nbsp;and&nbsp;arrivalrec0_.station_no='V4506'<br>arrival_record&nbsp;arrivalrec0_&nbsp;where&nbsp;arrivalrec0_.sequence='2019-03-27&nbsp;08:40'&nbsp;and&nbsp;arrivalrec0_.product_id=24&nbsp;and&nbsp;arrivalrec0_.station_no='V4617'<br>arrival_record&nbsp;arrivalrec0_&nbsp;where&nbsp;arrivalrec0_.sequence='2019-03-27&nbsp;08:40'&nbsp;and&nbsp;arrivalrec0_.product_id=22&nbsp;and&nbsp;arrivalrec0_.station_no='S8356'<br>arrival_record&nbsp;arrivalrec0_&nbsp;where&nbsp;arrivalrec0_.sequence='2019-03-27&nbsp;08:40'&nbsp;and&nbsp;arrivalrec0_.product_id=22&nbsp;and&nbsp;arrivalrec0_.station_no='S8356'<br><\/code><\/pre>\n\n\n\n<p><code>select<\/code> \u8be5\u8868 <code>where<\/code> \u6761\u4ef6\u4e2d\u6709 <code>product_id<\/code>\uff0c<code>station_no<\/code>\uff0c<code>sequence<\/code> \u5b57\u6bb5\uff0c\u53ef\u4ee5\u4f7f\u7528\u5230\u590d\u5408\u7d22\u5f15 <code>IXFK_arrival_record<\/code> \u7684\u524d\u4e09\u4e2a\u5b57\u6bb5\u3002<\/p>\n\n\n\n<p>\u7efc\u4e0a\u6240\u793a\uff0c\u4f18\u5316\u65b9\u6cd5\u4e3a\uff1a<\/p>\n\n\n\n<ul>\n<li>\u5220\u9664\u590d\u5408\u7d22\u5f15 &nbsp;IXFK_arrival_record<\/li>\n\n\n\n<li>\u5efa\u7acb\u590d\u5408\u7d22\u5f15 &nbsp;idx_sequence_station_no_product_id<\/li>\n\n\n\n<li>\u5efa\u7acb\u5355\u72ec\u7d22\u5f15 &nbsp;indx_receive_time<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">delete xxx_record \u8bed\u53e5<\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"737\" height=\"201\" src=\"https:\/\/www.zeroheart.xyz\/wordpress\/wp-content\/uploads\/2022\/11\/image-5.png\" alt=\"\" class=\"wp-image-4022\" srcset=\"https:\/\/www.zeroheart.xyz\/wordpress\/wp-content\/uploads\/2022\/11\/image-5.png 737w, https:\/\/www.zeroheart.xyz\/wordpress\/wp-content\/uploads\/2022\/11\/image-5-300x82.png 300w\" sizes=\"(max-width: 737px) 100vw, 737px\" \/><\/figure>\n\n\n\n<p>\u8be5<code>delete<\/code> \u64cd\u4f5c\u5e73\u5747\u626b\u63cf\u884c\u6570\u4e3a 1.1 \u4ebf\u884c\uff0c\u5e73\u5747\u6267\u884c\u65f6\u95f4\u662f 262s\u3002<\/p>\n\n\n\n<p><code>delete<\/code> \u8bed\u53e5\u5982\u4e0b\u6240\u793a\uff0c\u6bcf\u6b21\u8bb0\u5f55\u7684\u6162\u67e5\u8be2\u4f20\u5165\u7684\u53c2\u6570\u503c\u4e0d\u4e00\u6837\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>delete&nbsp;from&nbsp;arrival_record&nbsp;where&nbsp;receive_time&nbsp;&lt;&nbsp;STR_TO_DATE('2019-02-23',&nbsp;'%Y-%m-%d')\\G<br><\/code><\/pre>\n\n\n\n<p>\u6267\u884c\u8ba1\u5212\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>explain&nbsp;select&nbsp;*&nbsp;from&nbsp;arrival_record&nbsp;where&nbsp;receive_time&nbsp;&lt;&nbsp;STR_TO_DATE('2019-02-23',&nbsp;'%Y-%m-%d')\\G<br>***************************&nbsp;1.&nbsp;row&nbsp;***************************<br>id:&nbsp;1<br>select_type:&nbsp;SIMPLE<br>table:&nbsp;arrival_record<br>partitions:&nbsp;NULL<br>type:&nbsp;ALL<br>possible_keys:&nbsp;NULL<br>key:&nbsp;NULL<br>key_len:&nbsp;NULL<br>ref:&nbsp;NULL<br>rows:&nbsp;109501508<br>filtered:&nbsp;33.33<br>Extra:&nbsp;Using&nbsp;where<br>1&nbsp;row&nbsp;in&nbsp;set,&nbsp;1&nbsp;warning&nbsp;(0.00&nbsp;sec)<br><\/code><\/pre>\n\n\n\n<p>\u8be5<code>delete<\/code> \u8bed\u53e5\u6ca1\u6709\u4f7f\u7528\u7d22\u5f15\uff08\u6ca1\u6709\u5408\u9002\u7684\u7d22\u5f15\u53ef\u7528\uff09\uff0c\u8d70\u7684\u5168\u8868\u626b\u63cf\uff0c\u5bfc\u81f4\u6267\u884c\u65f6\u95f4\u957f\u3002<\/p>\n\n\n\n<p>\u4f18\u5316\u65b9\u6cd5\u4e5f\u662f\uff1a\u5efa\u7acb\u5355\u72ec\u7d22\u5f15 <code>indx_receive_time(receive_time)<\/code>\u3002<\/p>\n\n\n\n<p><strong>\u6d4b\u8bd5<\/strong><\/p>\n\n\n\n<p>\u62f7\u8d1d<code>arrival_record<\/code> \u8868\u5230\u6d4b\u8bd5\u5b9e\u4f8b\u4e0a\u8fdb\u884c\u5220\u9664\u91cd\u65b0\u7d22\u5f15\u64cd\u4f5c\u3002<\/p>\n\n\n\n<p>XX\u5b9e\u4f8b <code>arrival_record<\/code> \u8868\u4fe1\u606f\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>du&nbsp;-sh&nbsp;\/datas\/mysql\/data\/3316\/cq_new_cimiss\/arrival_record*<br>12K&nbsp;&nbsp;&nbsp;&nbsp;\/datas\/mysql\/data\/3316\/cq_new_cimiss\/arrival_record.frm<br>48G&nbsp;&nbsp;&nbsp;&nbsp;\/datas\/mysql\/data\/3316\/cq_new_cimiss\/arrival_record.ibd<br><br>select&nbsp;<strong>count<\/strong>()&nbsp;from&nbsp;cq_new_cimiss.arrival_record;<br>+-----------+<br>|&nbsp;count()&nbsp;|<br>+-----------+<br>|&nbsp;112294946&nbsp;|<br>+-----------+<br>1\u4ebf\u591a\u8bb0\u5f55\u6570<br><br>SELECT<br>table_name,<br>CONCAT(FORMAT(SUM(data_length)&nbsp;\/&nbsp;1024&nbsp;\/&nbsp;1024,2),'M')&nbsp;AS&nbsp;dbdata_size,<br>CONCAT(FORMAT(SUM(index_length)&nbsp;\/&nbsp;1024&nbsp;\/&nbsp;1024,2),'M')&nbsp;AS&nbsp;dbindex_size,<br>CONCAT(FORMAT(SUM(data_length&nbsp;+&nbsp;index_length)&nbsp;\/&nbsp;1024&nbsp;\/&nbsp;1024&nbsp;\/&nbsp;1024,2),'G')&nbsp;AS&nbsp;<strong>table_size<\/strong>(G),<br>AVG_ROW_LENGTH,table_rows,update_time<br>FROM<br>information_schema.tables<br>WHERE&nbsp;table_schema&nbsp;=&nbsp;'cq_new_cimiss'&nbsp;and&nbsp;table_name='arrival_record';<br><br>+----------------+-------------+--------------+------------+----------------+------------+---------------------+<br>|&nbsp;table_name&nbsp;|&nbsp;dbdata_size&nbsp;|&nbsp;dbindex_size&nbsp;|&nbsp;table_size(G)&nbsp;|&nbsp;AVG_ROW_LENGTH&nbsp;|&nbsp;table_rows&nbsp;|&nbsp;update_time&nbsp;|<br>+----------------+-------------+--------------+------------+----------------+------------+---------------------+<br>|&nbsp;arrival_record&nbsp;|&nbsp;18,268.02M&nbsp;|&nbsp;13,868.05M&nbsp;|&nbsp;31.38G&nbsp;|&nbsp;175&nbsp;|&nbsp;109155053&nbsp;|&nbsp;2019-03-26&nbsp;12:40:17&nbsp;|<br>+----------------+-------------+--------------+------------+----------------+------------+---------------------+<br><\/code><\/pre>\n\n\n\n<p>\u78c1\u76d8\u5360\u7528\u7a7a\u95f4 48G\uff0cMySQL \u4e2d\u8be5\u8868\u5927\u5c0f\u4e3a 31G\uff0c\u5b58\u5728 17G \u5de6\u53f3\u7684\u788e\u7247\uff0c\u5927\u591a\u7531\u4e8e\u5220\u9664\u64cd\u4f5c\u9020\u6210\u7684\u3002\uff08\u8bb0\u5f55\u88ab\u5220\u9664\u4e86\uff0c\u7a7a\u95f4\u6ca1\u6709\u56de\u6536)<\/p>\n\n\n\n<p>\u5907\u4efd\u8fd8\u539f\u8be5\u8868\u5230\u65b0\u7684\u5b9e\u4f8b\u4e2d\uff0c\u5220\u9664\u539f\u6765\u7684\u590d\u5408\u7d22\u5f15\uff0c\u91cd\u65b0\u6dfb\u52a0\u7d22\u5f15\u8fdb\u884c\u6d4b\u8bd5\u3002<\/p>\n\n\n\n<p>mydumper \u5e76\u884c\u538b\u7f29\u5907\u4efd\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&nbsp;user=root<br>&nbsp;&nbsp;passwd=xxxx<br>&nbsp;socket=\/datas\/mysql\/data\/3316\/mysqld.sock<br>&nbsp;db=cq_new_cimiss<br>&nbsp;table_name=arrival_record<br>&nbsp;backupdir=\/datas\/dump_$table_name<br>&nbsp;mkdir&nbsp;-p&nbsp;$backupdir<br><br>&nbsp;&nbsp;&nbsp;nohup&nbsp;echo&nbsp;date&nbsp;+%T&nbsp;&amp;&amp;&nbsp;mydumper&nbsp;-u&nbsp;$user&nbsp;-p&nbsp;$passwd&nbsp;-S&nbsp;$socket&nbsp;&nbsp;-B&nbsp;$db&nbsp;-c&nbsp;&nbsp;-T&nbsp;$table_name&nbsp;&nbsp;-o&nbsp;$backupdir&nbsp;&nbsp;-t&nbsp;32&nbsp;-r&nbsp;2000000&nbsp;&amp;&amp;&nbsp;echo&nbsp;date&nbsp;+%T&nbsp;&amp;<br><\/code><\/pre>\n\n\n\n<p>\u5e76\u884c\u538b\u7f29\u5907\u4efd\u6240\u82b1\u65f6\u95f4\uff0852s\uff09\u548c\u5360\u7528\u7a7a\u95f4\uff081.2G\uff0c\u5b9e\u9645\u8be5\u8868\u5360\u7528\u78c1\u76d8\u7a7a\u95f4\u4e3a 48G\uff0cmydumper \u5e76\u884c\u538b\u7f29\u5907\u4efd\u538b\u7f29\u6bd4\u76f8\u5f53\u9ad8\uff09\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Started&nbsp;dump&nbsp;at:&nbsp;2019-03-26&nbsp;12:46:04<br>........<br><br>Finished&nbsp;dump&nbsp;at:&nbsp;2019-03-26&nbsp;12:46:56<br><br>du&nbsp;-sh&nbsp;&nbsp;&nbsp;\/datas\/dump_arrival_record\/<br>1.2G&nbsp;&nbsp;&nbsp;&nbsp;\/datas\/dump_arrival_record\/<br><\/code><\/pre>\n\n\n\n<p>\u62f7\u8d1ddump \u6570\u636e\u5230\u6d4b\u8bd5\u8282\u70b9\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>scp&nbsp;-rp&nbsp;\/datas\/dump_arrival_record&nbsp;root@10.230.124.19:\/datas<br><\/code><\/pre>\n\n\n\n<p>\u591a\u7ebf\u7a0b\u5bfc\u5165\u6570\u636e\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>time&nbsp;myloader&nbsp;-u&nbsp;root&nbsp;-S&nbsp;\/datas\/mysql\/data\/3308\/mysqld.sock&nbsp;-P&nbsp;3308&nbsp;-p&nbsp;root&nbsp;-B&nbsp;test&nbsp;-d&nbsp;\/datas\/dump_arrival_record&nbsp;-t&nbsp;32<br><br>real&nbsp;126m42.885s<br>user&nbsp;1m4.543s<br>sys&nbsp;0m4.267s<br><\/code><\/pre>\n\n\n\n<p>\u903b\u8f91\u5bfc\u5165\u8be5\u8868\u540e\u78c1\u76d8\u5360\u7528\u7a7a\u95f4\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>du&nbsp;-h&nbsp;-d&nbsp;1&nbsp;\/datas\/mysql\/data\/3308\/test\/arrival_record.*<br>12K&nbsp;\/datas\/mysql\/data\/3308\/test\/arrival_record.frm<br>30G&nbsp;\/datas\/mysql\/data\/3308\/test\/arrival_record.ibd<br><\/code><\/pre>\n\n\n\n<p>\u6ca1\u6709\u788e\u7247\uff0c\u548cmysql\u7684\u8be5\u8868\u7684\u5927\u5c0f\u4e00\u81f4<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cp&nbsp;-rp&nbsp;\/datas\/mysql\/data\/3308&nbsp;\/datas<br><\/code><\/pre>\n\n\n\n<p>\u5206\u522b\u4f7f\u7528 <code>online DDL<\/code> \u548c <code>pt-osc<\/code> \u5de5\u5177\u6765\u505a\u5220\u9664\u91cd\u5efa\u7d22\u5f15\u64cd\u4f5c\u3002<\/p>\n\n\n\n<p>\u5148\u5220\u9664\u5916\u952e\uff0c\u4e0d\u5220\u9664\u5916\u952e\uff0c\u65e0\u6cd5\u5220\u9664\u590d\u5408\u7d22\u5f15\uff0c\u5916\u952e\u5217\u5c5e\u4e8e\u590d\u5408\u7d22\u5f15\u4e2d\u7b2c\u4e00\u5217\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nohup&nbsp;bash&nbsp;\/tmp\/ddl_index.sh&nbsp;&amp;<br>2019-04-04-10:41:39&nbsp;begin&nbsp;stop&nbsp;mysqld_3308<br>2019-04-04-10:41:41&nbsp;begin&nbsp;rm&nbsp;-rf&nbsp;datadir&nbsp;and&nbsp;cp&nbsp;-rp&nbsp;datadir_bak<br>2019-04-04-10:46:53&nbsp;start&nbsp;mysqld_3308<br>2019-04-04-10:46:59&nbsp;online&nbsp;ddl&nbsp;begin<br>2019-04-04-11:20:34&nbsp;onlie&nbsp;ddl&nbsp;stop<br>2019-04-04-11:20:34&nbsp;begin&nbsp;stop&nbsp;mysqld_3308<br>2019-04-04-11:20:36&nbsp;begin&nbsp;rm&nbsp;-rf&nbsp;datadir&nbsp;and&nbsp;cp&nbsp;-rp&nbsp;datadir_bak<br>2019-04-04-11:22:48&nbsp;start&nbsp;mysqld_3308<br>2019-04-04-11:22:53&nbsp;pt-osc&nbsp;begin<br>2019-04-04-12:19:15&nbsp;pt-osc&nbsp;stop<br><\/code><\/pre>\n\n\n\n<p><code>online DDL<\/code> \u82b1\u8d39\u65f6\u95f4\u4e3a 34 \u5206\u949f\uff0cpt-osc \u82b1\u8d39\u65f6\u95f4\u4e3a 57 \u5206\u949f\uff0c\u4f7f\u7528 <code>onlne DDL<\/code> \u65f6\u95f4\u7ea6\u4e3a <code>pt-osc<\/code> \u5de5\u5177\u65f6\u95f4\u7684\u4e00\u534a\u3002<\/p>\n\n\n\n<p>\u505aDDL \u53c2\u8003\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"751\" height=\"511\" src=\"https:\/\/www.zeroheart.xyz\/wordpress\/wp-content\/uploads\/2022\/11\/image-6.png\" alt=\"\" class=\"wp-image-4023\" srcset=\"https:\/\/www.zeroheart.xyz\/wordpress\/wp-content\/uploads\/2022\/11\/image-6.png 751w, https:\/\/www.zeroheart.xyz\/wordpress\/wp-content\/uploads\/2022\/11\/image-6-300x204.png 300w\" sizes=\"(max-width: 751px) 100vw, 751px\" \/><\/figure>\n\n\n\n<p>\u7531\u4e8e\u662f\u4e00\u4e3b\u4e00\u4ece\u5b9e\u4f8b\uff0c\u5e94\u7528\u662f\u8fde\u63a5\u7684 vip\uff0c\u5220\u9664\u91cd\u5efa\u7d22\u5f15\u91c7\u7528 online DDL \u6765\u505a\u3002<\/p>\n\n\n\n<p>\u505c\u6b62\u4e3b\u4ece\u590d\u5236\u540e\uff0c\u5148\u5728\u4ece\u5b9e\u4f8b\u4e0a\u505a\uff08\u4e0d\u8bb0\u5f55 binlog\uff09\uff0c\u4e3b\u4ece\u5207\u6362\uff0c\u518d\u5728\u65b0\u5207\u6362\u7684\u4ece\u5b9e\u4f8b\u4e0a\u505a\uff08\u4e0d\u8bb0\u5f55 binlog)\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function&nbsp;<strong>red_echo<\/strong>&nbsp;()&nbsp;{<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local&nbsp;what=\"$*\"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;-e&nbsp;\"$(date&nbsp;+%F-%T)&nbsp;&nbsp;${what}\"<br>}<br><br>function&nbsp;<strong>check_las_comm<\/strong>(){<br>&nbsp;&nbsp;&nbsp;&nbsp;<strong>if<\/strong>&nbsp;&#91;&nbsp;\"$1\"&nbsp;!=&nbsp;\"0\"&nbsp;];then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;red_echo&nbsp;\"$2\"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;\"exit&nbsp;1\"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit&nbsp;1<br>&nbsp;&nbsp;&nbsp;&nbsp;fi<br>}<br><br>red_echo&nbsp;\"stop&nbsp;slave\"<br>mysql&nbsp;-uroot&nbsp;-p$passwd&nbsp;--socket=\/datas\/mysql\/data\/${port}\/mysqld.sock&nbsp;-e\"stop&nbsp;slave\"<br>check_las_comm&nbsp;\"$?\"&nbsp;\"stop&nbsp;slave&nbsp;failed\"<br><br>red_echo&nbsp;\"online&nbsp;ddl&nbsp;begin\"<br>&nbsp;mysql&nbsp;-uroot&nbsp;-p$passwd&nbsp;--socket=\/datas\/mysql\/data\/${port}\/mysqld.sock&nbsp;-e\"set&nbsp;sql_log_bin=0;select&nbsp;now()&nbsp;as&nbsp;&nbsp;ddl_start;ALTER&nbsp;TABLE&nbsp;$db_.\\${table_name}\\&nbsp;DROP&nbsp;FOREIGN&nbsp;KEY&nbsp;FK_arrival_record_product,drop&nbsp;index&nbsp;IXFK_arrival_record,add&nbsp;index&nbsp;idx_product_id_sequence_station_no(product_id,sequence,station_no),add&nbsp;index&nbsp;idx_receive_time(receive_time);select&nbsp;now()&nbsp;as&nbsp;ddl_stop\"&nbsp;&gt;&gt;`${log_file}&nbsp;2&gt;`&amp;&nbsp;1<br>&nbsp;red_echo&nbsp;\"onlie&nbsp;ddl&nbsp;stop\"<br>&nbsp;red_echo&nbsp;\"add&nbsp;foreign&nbsp;key\"<br>&nbsp;mysql&nbsp;-uroot&nbsp;-p$passwd&nbsp;--socket=\/datas\/mysql\/data\/${port}\/mysqld.sock&nbsp;-e\"set&nbsp;sql_log_bin=0;ALTER&nbsp;TABLE&nbsp;$db_.${table_name}&nbsp;ADD&nbsp;CONSTRAINT&nbsp;_FK_${table_name}_product&nbsp;FOREIGN&nbsp;KEY&nbsp;(product_id)&nbsp;REFERENCES&nbsp;cq_new_cimiss.product&nbsp;(id)&nbsp;ON&nbsp;DELETE&nbsp;NO&nbsp;ACTION&nbsp;ON&nbsp;UPDATE&nbsp;NO&nbsp;ACTION;\"&nbsp;&gt;&gt;${log_file}&nbsp;2&gt;&amp;&nbsp;1<br>&nbsp;check_las_comm&nbsp;\"$?\"&nbsp;\"add&nbsp;foreign&nbsp;key&nbsp;error\"<br>&nbsp;red_echo&nbsp;\"add&nbsp;foreign&nbsp;key&nbsp;stop\"<br><br>red_echo&nbsp;\"start&nbsp;slave\"<br>mysql&nbsp;-uroot&nbsp;-p$passwd&nbsp;--socket=\/datas\/mysql\/data\/${port}\/mysqld.sock&nbsp;-e\"start&nbsp;slave\"<br>check_las_comm&nbsp;\"$?\"&nbsp;\"start&nbsp;slave&nbsp;failed\"<br><\/code><\/pre>\n\n\n\n<p>\u6267\u884c\u65f6\u95f4\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>2019-04-08-11:17:36&nbsp;stop&nbsp;slave<br>mysql:&nbsp;&#91;Warning]&nbsp;Using&nbsp;a&nbsp;password&nbsp;on&nbsp;the&nbsp;command&nbsp;line&nbsp;<strong>interface<\/strong>&nbsp;<strong>can<\/strong>&nbsp;<strong>be<\/strong>&nbsp;<strong>insecure<\/strong>.<br><strong>ddl_start<\/strong><br>2019-04-08&nbsp;11:17:36<br><strong>ddl_stop<\/strong><br>2019-04-08&nbsp;11:45:13<br>2019-04-08-11:45:13&nbsp;<strong>onlie<\/strong>&nbsp;<strong>ddl<\/strong>&nbsp;<strong>stop<\/strong><br>2019-04-08-11:45:13&nbsp;<strong>add<\/strong>&nbsp;<strong>foreign<\/strong>&nbsp;<strong>key<\/strong><br><strong>mysql<\/strong>:&nbsp;&#91;<strong>Warning<\/strong>]&nbsp;<strong>Using<\/strong>&nbsp;<strong>a<\/strong>&nbsp;<strong>password<\/strong>&nbsp;<strong>on<\/strong>&nbsp;<strong>the<\/strong>&nbsp;<strong>command<\/strong>&nbsp;<strong>line<\/strong>&nbsp;<strong>interface<\/strong>&nbsp;<strong>can<\/strong>&nbsp;<strong>be<\/strong>&nbsp;<strong>insecure<\/strong>.<br>2019-04-08-12:33:48&nbsp;<strong>add<\/strong>&nbsp;<strong>foreign<\/strong>&nbsp;<strong>key<\/strong>&nbsp;<strong>stop<\/strong><br>2019-04-08-12:33:48&nbsp;<strong>start<\/strong>&nbsp;<strong>slave<\/strong><br><\/code><\/pre>\n\n\n\n<p>\u5220\u9664\u91cd\u5efa\u7d22\u5f15\u82b1\u8d39\u65f6\u95f4\u4e3a 28 \u5206\u949f\uff0c\u6dfb\u52a0\u5916\u952e\u7ea6\u675f\u65f6\u95f4\u4e3a 48 \u5206\u949f\u3002<\/p>\n\n\n\n<p>\u518d\u6b21\u67e5\u770b <code>delete<\/code> \u548c <code>select<\/code> \u8bed\u53e5\u7684\u6267\u884c\u8ba1\u5212\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>explain&nbsp;select&nbsp;<strong>count<\/strong>(*)&nbsp;from&nbsp;arrival_record&nbsp;where&nbsp;receive_time&nbsp;&lt;&nbsp;<strong>STR_TO_DATE<\/strong>('2019-03-10',&nbsp;'%Y-%m-%d')\\G<br>***************************&nbsp;1.&nbsp;row&nbsp;***************************<br>id:&nbsp;1<br>select_type:&nbsp;SIMPLE<br>table:&nbsp;arrival_record<br>partitions:&nbsp;NULL<br>type:&nbsp;range<br>possible_keys:&nbsp;idx_receive_time<br>key:&nbsp;idx_receive_time<br>key_len:&nbsp;6<br>ref:&nbsp;NULL<br>rows:&nbsp;7540948<br>filtered:&nbsp;100.00<br>Extra:&nbsp;Using&nbsp;where;&nbsp;Using&nbsp;index<br><br>explain&nbsp;select&nbsp;<strong>count<\/strong>(*)&nbsp;from&nbsp;arrival_record&nbsp;where&nbsp;product_id=26&nbsp;and&nbsp;receive_time&nbsp;between&nbsp;'2019-03-25&nbsp;14:00:00'&nbsp;and&nbsp;'2019-03-25&nbsp;15:00:00'&nbsp;and&nbsp;receive_spend_ms&gt;=0\\G;<br>***************************&nbsp;1.&nbsp;row&nbsp;***************************<br>id:&nbsp;1<br>select_type:&nbsp;SIMPLE<br>table:&nbsp;arrival_record<br>partitions:&nbsp;NULL<br>type:&nbsp;range<br>possible_keys:&nbsp;idx_product_id_sequence_station_no,idx_receive_time<br>key:&nbsp;idx_receive_time<br>key_len:&nbsp;6<br>ref:&nbsp;NULL<br>rows:&nbsp;291448<br>filtered:&nbsp;16.66<br>Extra:&nbsp;Using&nbsp;index&nbsp;condition;&nbsp;Using&nbsp;where<br><\/code><\/pre>\n\n\n\n<p>\u90fd\u4f7f\u7528\u5230\u4e86 <code>idx_receive_time<\/code> \u7d22\u5f15\uff0c\u626b\u63cf\u7684\u884c\u6570\u5927\u5927\u964d\u4f4e\u3002<\/p>\n\n\n\n<p><strong>\u7d22\u5f15\u4f18\u5316\u540e<\/strong><\/p>\n\n\n\n<p>delete \u8fd8\u662f\u82b1\u8d39\u4e86 77s \u65f6\u95f4\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>delete&nbsp;from&nbsp;arrival_record&nbsp;where&nbsp;receive_time&nbsp;&lt;&nbsp;STR_TO_DATE('2019-03-10',&nbsp;'%Y-%m-%d')\\G<br><\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"698\" height=\"220\" src=\"https:\/\/www.zeroheart.xyz\/wordpress\/wp-content\/uploads\/2022\/11\/image-9.png\" alt=\"\" class=\"wp-image-4026\" srcset=\"https:\/\/www.zeroheart.xyz\/wordpress\/wp-content\/uploads\/2022\/11\/image-9.png 698w, https:\/\/www.zeroheart.xyz\/wordpress\/wp-content\/uploads\/2022\/11\/image-9-300x95.png 300w\" sizes=\"(max-width: 698px) 100vw, 698px\" \/><\/figure>\n\n\n\n<p>delete \u8bed\u53e5\u901a\u8fc7 <code>receive_time<\/code> \u7684\u7d22\u5f15\u5220\u9664 300 \u591a\u4e07\u7684\u8bb0\u5f55\u82b1\u8d39 77s \u65f6\u95f4\u3002<\/p>\n\n\n\n<p><strong>delete \u5927\u8868\u4f18\u5316\u4e3a\u5c0f\u6279\u91cf\u5220\u9664<\/strong><\/p>\n\n\n\n<p>\u5e94\u7528\u7aef\u5df2\u4f18\u5316\u6210\u6bcf\u6b21\u5220\u9664 10 \u5206\u949f\u7684\u6570\u636e\uff08\u6bcf\u6b21\u6267\u884c\u65f6\u95f4 1s \u5de6\u53f3\uff09\uff0cxxx \u4e2d\u6ca1\u5728\u51fa\u73b0 SLA\uff08\u4e3b\u4ece\u5ef6\u8fdf\u544a\u8b66\uff09\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"459\" src=\"https:\/\/www.zeroheart.xyz\/wordpress\/wp-content\/uploads\/2022\/11\/image-7.png\" alt=\"\" class=\"wp-image-4024\" srcset=\"https:\/\/www.zeroheart.xyz\/wordpress\/wp-content\/uploads\/2022\/11\/image-7.png 750w, https:\/\/www.zeroheart.xyz\/wordpress\/wp-content\/uploads\/2022\/11\/image-7-300x184.png 300w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/figure>\n\n\n\n<p>\u53e6\u4e00\u4e2a\u65b9\u6cd5\u662f\u901a\u8fc7\u4e3b\u952e\u7684\u987a\u5e8f\u6bcf\u6b21\u5220\u9664 20000 \u6761\u8bb0\u5f55\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#\u5f97\u5230\u6ee1\u8db3\u65f6\u95f4\u6761\u4ef6\u7684\u6700\u5927\u4e3b\u952eID<br>#\u901a\u8fc7\u6309\u7167\u4e3b\u952e\u7684\u987a\u5e8f\u53bb&nbsp;\u987a\u5e8f\u626b\u63cf\u5c0f\u6279\u91cf\u5220\u9664\u6570\u636e<br>#\u5148\u6267\u884c\u4e00\u6b21\u4ee5\u4e0b\u8bed\u53e5<br>&nbsp;SELECT&nbsp;<strong>MAX<\/strong>(id)&nbsp;INTO&nbsp;@need_delete_max_id&nbsp;FROM&nbsp;arrival_record&nbsp;WHERE&nbsp;receive_time`&lt;'2019-03-01'&nbsp;;<br>&nbsp;DELETE&nbsp;FROM&nbsp;arrival_record&nbsp;WHERE&nbsp;id&lt;@need_delete_max_id&nbsp;LIMIT&nbsp;20000;<br>&nbsp;select&nbsp;<strong>ROW_COUNT<\/strong>();&nbsp;&nbsp;#\u8fd4\u56de20000<br>#\u6267\u884c\u5c0f\u6279\u91cfdelete\u540e\u4f1a\u8fd4\u56derow_count(),&nbsp;\u5220\u9664\u7684\u884c\u6570<br>#\u7a0b\u5e8f\u5224\u65ad\u8fd4\u56de\u7684row_count()\u662f\u5426\u4e3a0\uff0c\u4e0d\u4e3a0\u6267\u884c\u4ee5\u4e0b\u5faa\u73af\uff0c\u4e3a0\u9000\u51fa\u5faa\u73af\uff0c\u5220\u9664\u64cd\u4f5c\u5b8c\u6210<br>&nbsp;DELETE&nbsp;FROM&nbsp;arrival_record&nbsp;WHERE&nbsp;id&lt;@need_delete_max_id&nbsp;LIMIT&nbsp;20000;<br>&nbsp;select&nbsp;<strong>ROW_COUNT<\/strong>();<br>#\u7a0b\u5e8f\u7761\u77200.5s<br><\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u603b\u7ed3<\/h2>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>\u8868\u6570\u636e\u91cf\u592a\u5927\u65f6\uff0c\u9664\u4e86\u5173\u6ce8\u8bbf\u95ee\u8be5\u8868\u7684\u54cd\u5e94\u65f6\u95f4\u5916\uff0c\u8fd8\u8981\u5173\u6ce8\u5bf9\u8be5\u8868\u7684\u7ef4\u62a4\u6210\u672c\uff08\u5982\u505a DDL \u8868\u66f4\u65f6\u95f4\u592a\u957f\uff0cdelete \u5386\u53f2\u6570\u636e\uff09\u3002<\/strong><\/h2>\n\n\n\n<p>\u5bf9\u5927\u8868\u8fdb\u884c DDL \u64cd\u4f5c\u65f6\uff0c\u8981\u8003\u8651\u8868\u7684\u5b9e\u9645\u60c5\u51b5\uff08\u5982\u5bf9\u8be5\u8868\u7684\u5e76\u53d1\u8868\uff0c\u662f\u5426\u6709\u5916\u952e\uff09\u6765\u9009\u62e9\u5408\u9002\u7684 DDL \u53d8\u66f4\u65b9\u5f0f\u3002<\/p>\n\n\n\n<p>\u5bf9\u5927\u6570\u636e\u91cf\u8868\u8fdb\u884c delete\uff0c\u7528\u5c0f\u6279\u91cf\u5220\u9664\u7684\u65b9\u5f0f\uff0c\u51cf\u5c11\u5bf9\u4e3b\u5b9e\u4f8b\u7684\u538b\u529b\u548c\u4e3b\u4ece\u5ef6\u8fdf\u3002<\/p>\n\n\n\n<p>\u539f\u6587\uff1acnblogs.com\/YangJiaXin\/p\/10828244.html<\/p>\n","protected":false},"excerpt":{"rendered":"<p>XX \u5b9e\u4f8b\uff08\u4e00\u4e3b\u4e00\u4ece\uff09xxx \u544a\u8b66\u4e2d\u6bcf\u5929\u51cc\u6668\u5728\u62a5 SLA \u62a5\u8b66\uff0c\u8be5\u62a5\u8b66\u7684\u610f\u601d\u662f\u5b58\u5728\u4e00\u5b9a\u7684\u4e3b\u4ece\u5ef6\u8fdf\u3002\uff08\u82e5\u5728\u6b64\u65f6\u53d1 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[115],"tags":[],"_links":{"self":[{"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/4018"}],"collection":[{"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4018"}],"version-history":[{"count":1,"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/4018\/revisions"}],"predecessor-version":[{"id":4027,"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/4018\/revisions\/4027"}],"wp:attachment":[{"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4018"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4018"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4018"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}