1import{_ as i,c as a,b as n,o as l}from"./app-BX6j4ZW7.js";const e={};function h(t,s){return l(),a("div",null,[...s[0]||(s[0]=[n(`<h2 id="åè¨" tabindex="-1"><a class="header-anchor" href="#åè¨"><span>åè¨</span></a></h2><div class="article-referral-ad"><p>æè¿ç¼ºé¡¹ç®ç»åæ³å¿«éæå项ç®å®æè½åï¼å å«å¤ä¸ªAI项ç®ï¼ï¼æè æè¿æ¾å·¥ä½ï¼æè æ³å¦ä¹ AIçå°ä¼ä¼´ï¼å¯ä»¥ççä¸é¢ðð»ç<a class="article-referral-ad-link" href="/pay/project.html?from=article_ad1" rel="nofollow">è¿ä¸ªé¾æ¥</a>ï¼æè®¸ççè½å¤å¸®å°ä½ ï¼ã</p></div><p>ä¸ç¥éä½ å¨SpringBoot项ç®ä¸ï¼ææ²¡æéå°è¿ä¸é¢è¿æ ·ç代ç ï¼</p><div class="language-java line-numbers-mode" data-highlighter="shiki" data-ext="java" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code class="language-java"><span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">@</span><span style="--shiki-light:#A626A4;--shiki-dark:#E5C07B;">GetMapping</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">(</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">"/orders"</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">)</span></span> 2<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">public</span><span style="--shiki-light:#C18401;--shiki-dark:#E5C07B;"> List</span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;"><</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">Order</span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;">></span><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;"> listOrders</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">() {</span></span> 3<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;"> return</span><span style="--shiki-light:#E45649;--shiki-dark:#E5C07B;"> orderDao</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">.</span><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;">findAll</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">();</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;"> </span></span> 4<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>䏿¬¡æ§æ¥è¯¢äºææç订åï¼å ¨è¡¨æ«æ50䏿°æ®ï¼å¯¼è´æ¥å£æ¥è¯¢æ§è½å¾å·®ï¼ä¸¥éçæ¶åå¯è½ä¼å¯¼è´OOMé®é¢ã</p><p><strong>é®é¢å®ä½</strong>ï¼</p><ul><li>æªå页æ¥è¯¢</li><li>æ ç¼åæºå¶</li><li>æªå¯ç¨æ¹éå¤ç</li></ul><p>è¿æ¬¡äºæ 让ææç½ï¼<strong>æ§è½ä¼åå¿ é¡»è´¯ç©¿å¼åå ¨æµç¨</strong>ã</p><p>ä»å¤©è¿ç¯æç« ï¼è·å¤§å®¶ä¸èµ·èèSpringBootä¼åç12æï¼å¸æå¯¹ä½ 伿æå¸®å©ã</p><p><img src="https://files.mdnice.com/user/5303/f9081770-66e4-4c3d-93a9-adb099d364aa.png" alt=""></p><p><img src="https://files.mdnice.com/user/5303/709386c3-f34e-4037-8b8e-64b3627e3d0a.png" alt=""></p><h2 id="第1æ-è¿æ¥æ± åæ°è°ä¼" tabindex="-1"><a class="header-anchor" href="#第1æ-è¿æ¥æ± åæ°è°ä¼"><span>第1æï¼è¿æ¥æ± åæ°è°ä¼</span></a></h2><p><strong>é®é¢åºæ¯</strong>ï¼<br> é»è®¤é 置导è´è¿æ¥æ± èµæºæµªè´¹ï¼é«å¹¶åæ¶åºç°è¿æ¥çå¾ </p><p><strong>é误é ç½®</strong>ï¼</p><div class="language-plain line-numbers-mode" data-highlighter="shiki" data-ext="plain" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code class="language-plain"><span class="line"><span>spring:</span></span> 5<span class="line"><span> datasource:</span></span> 6<span class="line"><span> hikari:</span></span> 7<span class="line"><span> maximum-pool-size: 1000 </span></span> 8<span class="line"><span> connection-timeout: 30000</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>æ°æ®åºè¿æ¥æ± çæå¤§è¿æ¥æ°ï¼ç²ç®è®¾ç½®è¿å¤§ï¼è¿æ¥è¶ æ¶æ¶é´è®¾ç½®è¿é¿ã</p><p><strong>ä¼åæ¹æ¡</strong>ï¼</p><div class="language-plain line-numbers-mode" data-highlighter="shiki" data-ext="plain" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code class="language-plain"><span class="line"><span>spring:</span></span> 9<span class="line"><span> datasource:</span></span> 10<span class="line"><span> hikari:</span></span> 11<span class="line"><span> maximum-pool-size: \${CPUæ ¸å¿æ°*2} # å¨æè°æ´</span></span> 12<span class="line"><span> minimum-idle: 5</span></span> 13<span class="line"><span> connection-timeout: 3000 # 3ç§è¶ æ¶</span></span> 14<span class="line"><span> max-lifetime: 1800000 # 30åé</span></span> 15<span class="line"><span> idle-timeout: 600000 # 10åé空é²éæ¾</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>æ°æ®åºè¿æ¥æ± çæå¤§è¿æ¥æ°ï¼æ¹ææ ¹æ®CPUæ ¸å¿æ°å¨æè°æ´ã</p><p>å°è¿æ¥è¶ æ¶æ¶é´ç±30000ï¼æ¹æ3000ã</p><h2 id="第2æ-jvmå åä¼å" tabindex="-1"><a class="header-anchor" href="#第2æ-jvmå åä¼å"><span>第2æï¼JVMå åä¼å</span></a></h2><p><strong>é®é¢åºæ¯</strong>ï¼<br> é¢ç¹Full GCå¯¼è´æå¡å¡é¡¿</p><p>æä»¬éè¦ä¼åJVMåæ°ã</p><p><strong>å¯å¨åæ°ä¼å</strong>ï¼</p><div class="language-java line-numbers-mode" data-highlighter="shiki" data-ext="java" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code class="language-java"><span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">java </span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;">-</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">jar </span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;">-</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">Xms4g </span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;">-</span><span style="--shiki-light:#C18401;--shiki-dark:#E5C07B;">Xmx4g</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;"> </span></span> 16<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;">-</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">XX</span><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">:</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">NewRatio</span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;">=</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;">1</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;"> </span></span> 17<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;">-</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">XX</span><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">:</span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;">+</span><span style="--shiki-light:#C18401;--shiki-dark:#E5C07B;">UseG1GC</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;"> </span></span> 18<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;">-</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">XX</span><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">:</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">MaxGCPauseMillis</span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;">=</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;">200</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;"> </span></span> 19<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;">-</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">XX</span><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">:</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">InitiatingHeapOccupancyPercent</span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;">=</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;">35</span></span> 20<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;">-</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">XX</span><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">:</span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;">+</span><span style="--shiki-light:#C18401;--shiki-dark:#E5C07B;">AlwaysPreTouch</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>æå¤§å å åååå§å å åé½è®¾ç½®æäº4Gã</p><p>
20-XX:NewRatio=1ï¼è®¾ç½®æ°ç代åè年代åå ä¸åã</p><p>å徿¶éå¨é ç½®çæ¯G1ã</p><p>åå¾åæ¶çæå¤§åé¡¿æ¶é´ä¸º200毫ç§ã</p><h2 id="第3æ-å ³éæ ç¨ç»ä»¶" tabindex="-1"><a class="header-anchor" href="#第3æ-å ³éæ ç¨ç»ä»¶"><span>第3æï¼å ³éæ ç¨ç»ä»¶</span></a></h2><p><strong>é®é¢åºæ¯</strong>ï¼<br> èªå¨è£ é å è½½ä¸éè¦çBean</p><p><strong>ä¼åæ¹æ¡</strong>ï¼</p><div class="language-plain line-numbers-mode" data-highlighter="shiki" data-ext="plain" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code class="language-plain"><span class="line"><span>@SpringBootApplication(exclude = {</span></span> 21<span class="line"><span> DataSourceAutoConfiguration.class,</span></span> 22<span class="line"><span> SecurityAutoConfiguration.class</span></span> 23<span class="line"><span>})</span></span> 24<span class="line"><span>public class Application {</span></span> 25<span class="line"><span> public static void main(String[] args) {</span></span> 26<span class="line"><span> SpringApplication.run(Application.class, args);</span></span> 27<span class="line"><span> }</span></span> 28<span class="line"><span>}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>妿æäºåè½ææ¶ç¨ä¸å°ï¼å¯ä»¥å æé¤ä¸ä¸ã</p><p>å¨SpringBoot项ç®å¯å¨çæ¶åï¼æé¤äºDataSourceAutoConfigurationåSecurityAutoConfigurationé 置类çèªå¨è£ è½½ã</p><h2 id="第4æ-ååºå缩é ç½®" tabindex="-1"><a class="header-anchor" href="#第4æ-ååºå缩é ç½®"><span>第4æï¼ååºå缩é ç½®</span></a></h2><p><strong>é®é¢åºæ¯</strong>ï¼<br> æ¥å£è¿åJSONæ°æ®ä½ç§¯è¿å¤§</p><p><strong>ä¼åæ¹æ¡</strong>ï¼</p><div class="language-yml line-numbers-mode" data-highlighter="shiki" data-ext="yml" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code class="language-yml"><span class="line"><span style="--shiki-light:#E45649;--shiki-dark:#E06C75;">server</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">:</span></span> 29<span class="line"><span style="--shiki-light:#E45649;--shiki-dark:#E06C75;"> compression</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">:</span></span> 30<span class="line"><span style="--shiki-light:#E45649;--shiki-dark:#E06C75;"> enabled</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">: </span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;">true</span></span> 31<span class="line"><span style="--shiki-light:#E45649;--shiki-dark:#E06C75;"> mime-types</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">: </span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">text/html,text/xml,text/plain,text/css,text/javascript,application/json</span></span> 32<span class="line"><span style="--shiki-light:#E45649;--shiki-dark:#E06C75;"> min-response-size</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">: </span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;">1024</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>é ç½®å¼å¯ååºçå缩ã</p><h2 id="第5æ-请æ±åæ°æ ¡éª" tabindex="-1"><a class="header-anchor" href="#第5æ-请æ±åæ°æ ¡éª"><span>第5æï¼è¯·æ±åæ°æ ¡éª</span></a></h2><p><strong>é®é¢åºæ¯</strong>ï¼<br> æ¶æè¯·æ±å¯¼è´èµæºèå°½</p><p><strong>é²å¾¡ä»£ç </strong>ï¼</p><div class="language-java line-numbers-mode" data-highlighter="shiki" data-ext="java" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code class="language-java"><span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">@</span><span style="--shiki-light:#A626A4;--shiki-dark:#E5C07B;">GetMapping</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">(</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">"/products"</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">)</span></span> 33<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">public</span><span style="--shiki-light:#C18401;--shiki-dark:#E5C07B;"> PageResult</span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;"><</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">Product</span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;">></span><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;"> list</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">(</span></span> 34<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> @</span><span style="--shiki-light:#A626A4;--shiki-dark:#E5C07B;">RequestParam</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> @</span><span style="--shiki-light:#A626A4;--shiki-dark:#E5C07B;">Max</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">(</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;">value</span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;">=</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;">100</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">,</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> message</span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;">=</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">"页大å°ä¸è½è¶ è¿100"</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">) </span><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">int</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;"> pageSize</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">,</span></span> 35<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> @</span><span style="--shiki-light:#A626A4;--shiki-dark:#E5C07B;">RequestParam</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> @</span><span style="--shiki-light:#A626A4;--shiki-dark:#E5C07B;">Min</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">(</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;">1</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">) </span><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">int</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;"> pageNum) {</span></span> 36<span class="line"><span style="--shiki-light:#A0A1A7;--shiki-light-font-style:italic;--shiki-dark:#7F848E;--shiki-dark-font-style:italic;"> //...</span></span> 37<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>
37卿¥å£ä¸åå¥½åæ°æ ¡éªï¼å¯ä»¥æ¦æªå¾å¤æ¶æè¯·æ±ã</p><h2 id="第6æ-弿¥å¤çæºå¶" tabindex="-1"><a class="header-anchor" href="#第6æ-弿¥å¤çæºå¶"><span>第6æï¼å¼æ¥å¤çæºå¶</span></a></h2><p><strong>é®é¢åºæ¯</strong>ï¼<br> 忥å¤ç导è´çº¿ç¨é»å¡</p><p><strong>ä¼åæ¹æ¡</strong>ï¼</p><div class="language-java line-numbers-mode" data-highlighter="shiki" data-ext="java" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code class="language-java"><span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">@</span><span style="--shiki-light:#A626A4;--shiki-dark:#E5C07B;">Async</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">(</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">"taskExecutor"</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">)</span></span> 38<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">public</span><span style="--shiki-light:#C18401;--shiki-dark:#E5C07B;"> CompletableFuture</span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;"><</span><span style="--shiki-light:#C18401;--shiki-dark:#E5C07B;">List</span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;"><</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">Order</span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;">>></span><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;"> asyncProcess</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">() {</span></span> 39<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;"> return</span><span style="--shiki-light:#E45649;--shiki-dark:#E5C07B;"> CompletableFuture</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">.</span><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;">completedFuture</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;">heavyProcess</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">());</span></span> 40<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">}</span></span> 41<span class="line"></span> 42<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">@</span><span style="--shiki-light:#A626A4;--shiki-dark:#E5C07B;">Bean</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">(</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">"taskExecutor"</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">)</span></span> 43<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">public</span><span style="--shiki-light:#C18401;--shiki-dark:#E5C07B;"> Executor</span><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;"> taskExecutor</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">() {</span></span> 44<span class="line"><span style="--shiki-light:#C18401;--shiki-dark:#E5C07B;"> ThreadPoolTaskExecutor</span><span style="--shiki-light:#E45649;--shiki-dark:#E06C75;"> executor </span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;">=</span><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;"> new</span><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;"> ThreadPoolTaskExecutor</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">()</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">;</span></span> 45<span class="line"><span style="--shiki-light:#E45649;--shiki-dark:#E5C07B;"> executor</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">.</span><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;">setCorePoolSize</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;">5</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">);</span></span> 46<span class="line"><span style="--shiki-light:#E45649;--shiki-dark:#E5C07B;"> executor</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">.</span><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;">setMaxPoolSize</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;">10</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">);</span></span> 47<span class="line"><span style="--shiki-light:#E45649;--shiki-dark:#E5C07B;"> executor</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">.</span><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;">setQueueCapacity</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;">500</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">);</span></span> 48<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;"> return</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;"> executor</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">;</span></span> 49<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>卿äºä¸å¡é»è¾ä¸ï¼ä½¿ç¨å¼æ¥å¤çæ§è½å¯è½ä¼æ´å¥½ã</p><h2 id="第7æ-使ç¨ç¼å" tabindex="-1"><a class="header-anchor" href="#第7æ-使ç¨ç¼å"><span>第7æï¼ä½¿ç¨ç¼å</span></a></h2><p>使ç¨ç¼åå¯ä»¥æåæçã</p><p><strong>ç¼åæ¶æ</strong>ï¼</p><p><img src="https://files.mdnice.com/user/5303/cfb5177c-5ea0-41d5-be16-cf6eca8766ce.png" alt=""></p><p><strong>代ç å®ç°</strong>ï¼</p><div class="language-java line-numbers-mode" data-highlighter="shiki" data-ext="java" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code class="language-java"><span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">@</span><span style="--shiki-light:#A626A4;--shiki-dark:#E5C07B;">Cacheable</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">(</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;">cacheNames</span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;"> =</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> "products"</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">,</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> key</span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;"> =</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> "#id"</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">,</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;"> </span></span> 50<span class="line"><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> cacheManager</span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;"> =</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> "caffeineCacheManager"</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">)</span></span> 51<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">public</span><span style="--shiki-light:#C18401;--shiki-dark:#E5C07B;"> Product</span><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;"> getDetail</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">(</span><span style="--shiki-light:#C18401;--shiki-dark:#E5C07B;">Long</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;"> id) {</span></span> 52<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;"> return</span><span style="--shiki-light:#E45649;--shiki-dark:#E5C07B;"> productDao</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">.</span><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;">getById</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(id);</span></span> 53<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>è¿é使ç¨äºå åç¼åã</p><h2 id="第8æ-æ¹éæä½ä¼å" tabindex="-1"><a class="header-anchor" href="#第8æ-æ¹éæä½ä¼å"><span>第8æï¼æ¹éæä½ä¼å</span></a></h2><p><strong>é®é¢åºæ¯</strong>ï¼<br>
53 éæ¡æå ¥å¯¼è´æ§è½ä½ä¸</p><p><strong>ä¼åæ¹æ¡</strong>ï¼</p><div class="language-java line-numbers-mode" data-highlighter="shiki" data-ext="java" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code class="language-java"><span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">@</span><span style="--shiki-light:#A626A4;--shiki-dark:#E5C07B;">Transactional</span></span> 54<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">public</span><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;"> void</span><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;"> batchInsert</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">(</span><span style="--shiki-light:#C18401;--shiki-dark:#E5C07B;">List</span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;"><</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">Product</span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;">></span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;"> products) {</span></span> 55<span class="line"><span style="--shiki-light:#E45649;--shiki-dark:#E5C07B;"> jdbcTemplate</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">.</span><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;">batchUpdate</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span></span> 56<span class="line"><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> "INSERT INTO product(name,price) VALUES(?,?)"</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">,</span></span> 57<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> products,</span></span> 58<span class="line"><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> 500</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">, </span><span style="--shiki-light:#A0A1A7;--shiki-light-font-style:italic;--shiki-dark:#7F848E;--shiki-dark-font-style:italic;">// æ¯æ¹æ°é</span></span> 59<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> (ps, product) </span><span style="--shiki-light:#C18401;--shiki-dark:#C678DD;">-></span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> {</span></span> 60<span class="line"><span style="--shiki-light:#E45649;--shiki-dark:#E5C07B;"> ps</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">.</span><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;">setString</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;">1</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">, </span><span style="--shiki-light:#E45649;--shiki-dark:#E5C07B;">product</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">.</span><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;">getName</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">());</span></span> 61<span class="line"><span style="--shiki-light:#E45649;--shiki-dark:#E5C07B;"> ps</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">.</span><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;">setBigDecimal</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;">2</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">, </span><span style="--shiki-light:#E45649;--shiki-dark:#E5C07B;">product</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">.</span><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;">getPrice</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">());</span></span> 62<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> });</span></span> 63<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>æ¯500æ¡æ°æ®æå ¥ä¸æ¬¡æ°æ®åºã</p><h2 id="第9æ-ç´¢å¼æ·±åº¦ä¼å" tabindex="-1"><a class="header-anchor" href="#第9æ-ç´¢å¼æ·±åº¦ä¼å"><span>第9æï¼ç´¢å¼æ·±åº¦ä¼å</span></a></h2><p><strong>é®é¢åºæ¯</strong>ï¼<br> æ ¢æ¥è¯¢æ¥å¿é¢ç¹åºç°å ¨è¡¨æ«æï¼SQLæ§è¡æ¶é´æ³¢å¨å¤§</p><div class="article-referral-ad"><p>æè¿ç¼ºé¡¹ç®ç»åæ³å¿«éæå项ç®å®æè½åï¼å å«å¤ä¸ªAI项ç®ï¼ï¼æè æè¿æ¾å·¥ä½ï¼æè æ³å¦ä¹ AIçå°ä¼ä¼´ï¼å¯ä»¥ççä¸é¢ðð»ç<a class="article-referral-ad-link" href="/pay/project.html?from=article_ad2" rel="nofollow">è¿ä¸ªé¾æ¥</a>ï¼æè®¸ççè½å¤å¸®å°ä½ ï¼ã</p></div><p><strong>é误æ¡ä¾</strong>ï¼</p><div class="language-sql line-numbers-mode" data-highlighter="shiki" data-ext="sql" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code class="language-sql"><span class="line"><span style="--shiki-light:#A0A1A7;--shiki-light-font-style:italic;--shiki-dark:#7F848E;--shiki-dark-font-style:italic;">-- ååè¡¨ç»æ</span></span> 64<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">CREATE</span><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;"> TABLE</span><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;"> products</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> (</span></span> 65<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> id </span><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">BIGINT</span><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;"> PRIMARY KEY</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">,</span></span> 66<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;"> name</span><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;"> VARCHAR</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;">200</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">),</span></span> 67<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> category </span><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">VARCHAR</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;">50</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">),</span></span> 68<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> price </span><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">DECIMAL</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;">10</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">,</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;">2</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">),</span></span> 69<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> create_time </span><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">DATETIME</span></span> 70<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">);</span></span> 71<span class="line"></span> 72<span class="line"><span style="--shiki-light:#A0A1A7;--shiki-light-font-style:italic;--shiki-dark:#7F848E;--shiki-dark-font-style:italic;">-- 使æ¥è¯¢</span></span> 73<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">SELECT</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> * </span><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">FROM</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> products </span></span> 74<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">WHERE</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> category </span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;">=</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> 'ææº'</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> </span></span> 75<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">AND</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> price </span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;">></span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> 5000</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> </span></span> 76<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">ORDER BY</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> create_time </span><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">DESC</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p><strong>é®é¢åæ</strong>ï¼</p><p><img src="https://files.mdnice.com/user/5303/e5692dec-6dd6-4abd-b76a-958d12a62713.png" alt=""></p><h3 id="ä¼åæ¹æ¡ä¸-èåç´¢å¼è®¾è®¡" tabindex="-1"><a class="header-anchor" href="#ä¼åæ¹æ¡ä¸-èåç´¢å¼è®¾è®¡"><span>ä¼åæ¹æ¡ä¸ï¼èåç´¢å¼è®¾è®¡</span></a></h3><p><strong>ç´¢å¼å建</strong>ï¼</p><p>ä¸é¢å建äºä¸ä¸ªåç±»IDï¼åä»·åæ¶é´çèåç´¢å¼ï¼</p><div class="language-sql line-numbers-mode" data-highlighter="shiki" data-ext="sql" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code class="language-sql"><span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">ALTER</span><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;"> TABLE</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> products </span></span> 77<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">ADD</span><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;"> INDEX</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> idx_category_price_create </span></span> 78<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(category, price, create_time);</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="ä¼åæ¹æ¡äº-è¦çç´¢å¼ä¼å" tabindex="-1"><a class="header-anchor" href="#ä¼åæ¹æ¡äº-è¦çç´¢å¼ä¼å"><span>ä¼åæ¹æ¡äºï¼è¦çç´¢å¼ä¼å</span></a></h3><p><strong>æ¥è¯¢æ¹é </strong>ï¼</p><p>åªæ¥è¯¢ç´¢å¼å å«å段ï¼</p><div class="language-sql line-numbers-mode" data-highlighter="shiki" data-ext="sql" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code class="language-sql"><span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">SELECT</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> id, category, price, create_time </span></span> 79<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">FROM</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> products </span></span> 80<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">WHERE</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> category </span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;">=</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> 'ææº'</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> </span></span> 81<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">AND</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> price </span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;">></span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> 5000</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> </span></span> 82<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">ORDER BY</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> create_time </span><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">DESC</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>è¿é使ç¨äºè¦çç´¢å¼ã</p><h3 id="ä¼åæ¹æ¡ä¸-ç´¢å¼å¤±æé¢é²" tabindex="-1"><a class="header-anchor" href="#ä¼åæ¹æ¡ä¸-ç´¢å¼å¤±æé¢é²"><span>ä¼åæ¹æ¡ä¸ï¼ç´¢å¼å¤±æé¢é²</span></a></h3><p><strong>常è§å¤±æåºæ¯</strong>ï¼</p><p><img src="https://files.mdnice.com/user/5303/b8482c5a-131d-4df0-aabe-9001af58209f.png" alt=""></p><p><strong>æ¡ä¾ä¿®å¤</strong>ï¼</p><p>éè¯¯åæ³ï¼</p><div class="language-sql line-numbers-mode" data-highlighter="shiki" data-ext="sql" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code class="language-sql"><span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">SELECT</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> * </span><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">FROM</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> products </span></span> 83<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">WHERE</span><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;"> DATE</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(create_time) </span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;">=</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> '2023-01-01'</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><p>æ£ç¡®åæ³ï¼</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code class="language-"><span class="line"><span>SELECT * FROM products </span></span> 84<span class="line"><span>WHERE create_time BETWEEN '2023-01-01 00:00:00' </span></span> 85<span class="line"><span>AND '2023-01-01 23:59:59';</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>æ¥è¯¢æ¶é´èå´ï¼è¿é使ç¨äºBETWEEN ANDå ³é®åï¼ä»£æ¿äºçäºå·ã</p><h3 id="ä¼åæ¹æ¡å-ç´¢å¼çæ§åæ" tabindex="-1"><a class="header-anchor" href="#ä¼åæ¹æ¡å-ç´¢å¼çæ§åæ"><span>ä¼åæ¹æ¡åï¼ç´¢å¼çæ§åæ</span></a></h3><p><strong>è¯æå½ä»¤</strong>ï¼</p><p>æ¥çç
85´¢å¼ä½¿ç¨æ åµï¼</p><div class="language-sql line-numbers-mode" data-highlighter="shiki" data-ext="sql" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code class="language-sql"><span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">SELECT</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> </span></span> 86<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> index_name,</span></span> 87<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> rows_read,</span></span> 88<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> rows_selected </span></span> 89<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">FROM</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> </span></span> 90<span class="line"><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> sys</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">.</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;">schema_index_statistics</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> </span></span> 91<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">WHERE</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> </span></span> 92<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> table_name </span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;">=</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> 'products'</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>åæç´¢å¼æçï¼</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code class="language-"><span class="line"><span>EXPLAIN FORMAT=JSON </span></span> 93<span class="line"><span>SELECT ...;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="ç´¢å¼ä¼åé»éä¸åå" tabindex="-1"><a class="header-anchor" href="#ç´¢å¼ä¼åé»éä¸åå"><span>ç´¢å¼ä¼åé»éä¸åå</span></a></h3><ol><li><strong>æå·¦åç¼åå</strong>ï¼èåç´¢å¼ç第ä¸ä¸ªåæ®µå¿ é¡»åºç°å¨æ¥è¯¢æ¡ä»¶ä¸</li><li><strong>çç´¢å¼åå</strong>ï¼æ´ååæ®µä¼å ï¼åç¬¦ä¸²åæ®µä½¿ç¨åç¼ç´¢å¼</li><li><strong>é度索å¼åå</strong>ï¼åä¸ªè¡¨ç´¢å¼æ°éä¸è¶ è¿5ä¸ªï¼æ»ç´¢å¼é¿åº¦ä¸è¶ è¿è¡¨æ°æ®é30%</li></ol><p><strong>DBAå·¥å ·ç®±</strong></p><ul><li>ç´¢å¼åæèæ¬</li><li>æ§è¡è®¡åå¯è§åå·¥å ·</li><li>ç´¢å¼ç¢çæ£æµå·¥å ·</li></ul><h2 id="第10æ-èªå®ä¹çº¿ç¨æ± " tabindex="-1"><a class="header-anchor" href="#第10æ-èªå®ä¹çº¿ç¨æ± "><span>第10æï¼èªå®ä¹çº¿ç¨æ± </span></a></h2><p><strong>é®é¢åºæ¯</strong>ï¼<br> é»è®¤çº¿ç¨æ± 导è´èµæºç«äº</p><p><strong>ä¼åæ¹æ¡</strong>ï¼</p><div class="language-java line-numbers-mode" data-highlighter="shiki" data-ext="java" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code class="language-java"><span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">@</span><span style="--shiki-light:#A626A4;--shiki-dark:#E5C07B;">Bean</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">(</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">"customPool"</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">)</span></span> 94<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">public</span><span style="--shiki-light:#C18401;--shiki-dark:#E5C07B;"> Executor</span><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;"> customThreadPool</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">() {</span></span> 95<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;"> return</span><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;"> new</span><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;"> ThreadPoolExecutor</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">(</span></span> 96<span class="line"><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> 10</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">,</span><span style="--shiki-light:#A0A1A7;--shiki-light-font-style:italic;--shiki-dark:#7F848E;--shiki-dark-font-style:italic;"> // æ ¸å¿çº¿ç¨</span></span> 97<span class="line"><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> 50</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">,</span><span style="--shiki-light:#A0A1A7;--shiki-light-font-style:italic;--shiki-dark:#7F848E;--shiki-dark-font-style:italic;"> // æå¤§çº¿ç¨</span></span> 98<span class="line"><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> 60</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">,</span><span style="--shiki-light:#E45649;--shiki-dark:#E5C07B;"> TimeUnit</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">.</span><span style="--shiki-light:#E45649;--shiki-dark:#E5C07B;">SECONDS</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">,</span></span> 99<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;"> new</span><span style="--shiki-light:#C18401;--shiki-dark:#E5C07B;"> LinkedBlockingQueue</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"><></span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">(</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;">1000</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">)</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">,</span></span> 100<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;"> new</span><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;"> CustomThreadFactory</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">()</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">,</span></span> 101<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;"> new</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;"> ThreadPoolExecutor</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">.</span><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;">CallerRunsPolicy</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">()</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">)</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">;</span></span> 102<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>å¨é«å¹¶åä¸å¡åºæ¯ä¸ï¼ä½¿ç¨Executorsç±»å建é»è®¤ççº¿ç¨æ± ï¼å¯è½ä¼å¯¼è´OOMé®é¢ã</p><p>å æ¤ï¼æä»¬éè¦èªå®ä¹çº¿ç¨æ± ã</p><h2 id="第11æ-çæéæµçç¥" tabindex="-1"><a class="header-anchor" href="#第11æ-çæéæµçç¥"><span>第11æï¼çæéæµçç¥</span></a></h2><p><strong>é®é¢åºæ¯</strong>ï¼<br>
102 çªåæµéå¯¼è´æå¡éªå´©</p><p><strong>è§£å³æ¹æ¡</strong>ï¼</p><div class="language-java line-numbers-mode" data-highlighter="shiki" data-ext="java" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code class="language-java"><span class="line"><span style="--shiki-light:#A0A1A7;--shiki-light-font-style:italic;--shiki-dark:#7F848E;--shiki-dark-font-style:italic;">// 使ç¨Sentinelå®ç°æ¥å£éæµ</span></span> 103<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">@</span><span style="--shiki-light:#A626A4;--shiki-dark:#E5C07B;">SentinelResource</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">(</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;">value</span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;"> =</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> "orderQuery"</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">,</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;"> </span></span> 104<span class="line"><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> blockHandler</span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;"> =</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> "handleBlock"</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">,</span></span> 105<span class="line"><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> fallback</span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;"> =</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> "handleFallback"</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">)</span></span> 106<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">@</span><span style="--shiki-light:#A626A4;--shiki-dark:#E5C07B;">GetMapping</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">(</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">"/orders/{id}"</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">)</span></span> 107<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">public</span><span style="--shiki-light:#C18401;--shiki-dark:#E5C07B;"> Order</span><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;"> getOrder</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">(</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">@</span><span style="--shiki-light:#A626A4;--shiki-dark:#E5C07B;">PathVariable</span><span style="--shiki-light:#C18401;--shiki-dark:#E5C07B;"> Long</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;"> id) {</span></span> 108<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;"> return</span><span style="--shiki-light:#E45649;--shiki-dark:#E5C07B;"> orderService</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">.</span><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;">getById</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(id);</span></span> 109<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">}</span></span> 110<span class="line"></span> 111<span class="line"><span style="--shiki-light:#A0A1A7;--shiki-light-font-style:italic;--shiki-dark:#7F848E;--shiki-dark-font-style:italic;">// éæµå¤ç</span></span> 112<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">public</span><span style="--shiki-light:#C18401;--shiki-dark:#E5C07B;"> Order</span><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;"> handleBlock</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">(</span><span style="--shiki-light:#C18401;--shiki-dark:#E5C07B;">Long</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;"> id</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">,</span><span style="--shiki-light:#C18401;--shiki-dark:#E5C07B;"> BlockException</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;"> ex) {</span></span> 113<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;"> throw</span><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;"> new</span><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;"> RuntimeException</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">(</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">"æå¡ç¹å¿ï¼è¯·ç¨åéè¯"</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">)</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">;</span></span> 114<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">}</span></span> 115<span class="line"></span> 116<span class="line"><span style="--shiki-light:#A0A1A7;--shiki-light-font-style:italic;--shiki-dark:#7F848E;--shiki-dark-font-style:italic;">// é级å¤ç</span></span> 117<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">public</span><span style="--shiki-light:#C18401;--shiki-dark:#E5C07B;"> Order</span><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;"> handleFallback</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">(</span><span style="--shiki-light:#C18401;--shiki-dark:#E5C07B;">Long</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;"> id</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">,</span><span style="--shiki-light:#C18401;--shiki-dark:#E5C07B;"> Throwable</span><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;"> t) {</span></span> 118<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;"> return</span><span style="--shiki-light:#E45649;--shiki-dark:#E5C07B;"> Order</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">.</span><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;">getDefaultOrder</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">();</span></span> 119<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#E06C75;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>为äºè§£å³é夿µéå¯¼è´æå¡éªå´©çé®é¢ï¼æä»¬éè¦å¢å æ¥å£çæãéæµåé级å¤çã</p><h2 id="第12æ-å ¨é¾è·¯çæ§ä½ç³»" tabindex="-1"><a class="header-anchor" href="#第12æ-å ¨é¾è·¯çæ§ä½ç³»"><span>第12æï¼å ¨é¾è·¯çæ§ä½ç³»</span></a></h2><p><strong>é®é¢åºæ¯</strong>ï¼<br> 线ä¸é®é¢å®ä½å°é¾ï¼ç¼ºä¹æ°æ®æ¯æ</p><p>æä»¬éè¦å¢å 项ç®å ¨é¾è·¯ççæ§ã</p><p><strong>çæ§æ¹æ¡</strong>ï¼</p><div class="language-yml line-numbers-mode" data-highlighter="shiki" data-ext="yml" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code class="language-yml"><span class="line"><span style="--shiki-light:#A0A1A7;--shiki-light-font-style:italic;--shiki-dark:#7F848E;--shiki-dark-font-style:italic;"># SpringBooté ç½®</span></span> 120<span class="line"><span style="--shiki-light:#E45649;--shiki-dark:#E06C75;">management</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">:</span></span> 121<span class="line"><span style="--shiki-light:#E45649;--shiki-dark:#E06C75;"> endpoints</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">:</span></span> 122<span class="line"><span style="--shiki-light:#E45649;--shiki-dark:#E06C75;"> web</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">:</span></span> 123<span class="line"><span style="--shiki-light:#E45649;--shiki-dark:#E06C75;"> exposure</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">:</span></span> 124<span class="line"><span style="--shiki-light:#E45649;--shiki-dark:#E06C75;"> include</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">: </span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">"*"</span></span> 125<span class="line"><span style="--shiki-light:#E45649;--shiki-dark:#E06C75;"> metrics</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">:</span></span> 126<span class="line"><span style="--shiki-light:#E45649;--shiki-dark:#E06C75;"> export</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">:</span></span> 127<span class="line"><span style="--shiki-light:#E45649;--shiki-dark:#E06C75;"> prometheus</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">:</span></span> 128<span class="line"><span style="--shiki-light:#E45649;--shiki-dark:#E06C75;"> enabled</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">: </span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;">true</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>è¿é使ç¨äºprometheusçæ§ã</p><p><strong>çæ§æ¶æ</strong>ï¼</p><p><img src="https://files.mdnice.com/user/5303/ca6fade8-994a-4646-9dcc-945bdfe896b6.png" alt=""></p><p><strong>æ ¸å¿çæ§ææ </strong>ï¼</p><p><img src="https://files.mdnice.com/user/5303/62344f6d-459e-40c3-9871-2646d705927c.png" alt=""></p><h2 id="æ»ç»" tabindex="-1"><a class="header-anchor" href="#æ»ç»"><span>æ»ç»</span></a></h2><h3 id="springbootæ§è½ä¼åæ£æ¥æ¸ å" tabindex="-1"><a class="header-anchor" href="#springbootæ§è½ä¼åæ£æ¥æ¸ å"><span>SpringBootæ§è½ä¼åæ£æ¥æ¸ å</span></a></h3><ul><li>è¿æ¥æ± åæ°æä¸å¡è°æ´</li><li>JVMåæ°ç»è¿åæµéªè¯</li><li>æææ¥è¯¢èµ°ç¼åæºå¶</li><li>æ¹éæä½æ¿ä»£éæ¡å¤ç</li><li>çº¿ç¨æ± æåºæ¯å®å¶</li><li>å ¨é¾è·¯çæ§è¦ç</li></ul><p><img src="https://files.mdnice.com/user/5303/a9f579bd-cb69-4cd6-b2ee-ac7a9cf71407.png" alt=""></p><p><strong>䏿¡é»éæ³å</strong>ï¼</p><ol><li><strong>é¢é²æ§ä¼å</strong>ï¼ç¼ç æ¶èèæ§è½å½±å</li><li><strong>æ°æ®é©±å¨</strong>ï¼ç¨çæ§ææ æå¯¼ä¼åæ¹å</li><li><strong>æç»è¿ä»£</strong>ï¼æ§è½ä¼åæ¯æç»è¿ç¨</li></ol><p><strong>æ§è½å·¥å ·å </strong></p><ul><li>Arthaså¨çº¿è¯æ</li><li>JProfileræ§è½åæ</li><li>Prometheusçæ§ä½ç³»</li></ul><p>ï¼çççæ§å¤§å±ä¸å¹³ç¨³çQPSæ²çº¿ï¼æç¥é仿å¯ä»¥ç¡ä¸ªå¥½è§äº...ï¼</p><div class="article-referral-ad"><p>æè¿ç¼ºé¡¹ç®ç»åæ³å¿«éæå项ç®å®æè½åï¼å å«å¤ä¸ªAI项ç®ï¼ï¼æè æè¿æ¾å·¥ä½ï¼æè æ³å¦ä¹ AIçå°ä¼ä¼´ï¼å¯ä»¥ççä¸é¢ðð»ç<a class="article-referral-ad-link" href="/pay/project.html?from=article_ad3" rel="nofollow">è¿ä¸ªé¾æ¥</a>ï¼æè®¸ççè½å¤å¸®å°ä½ ï¼ã</p></div>`,128)])])}const k=i(e,[["render",h]]),r=JSON.parse('{"path":"/article/12-spring-boot-performance-optimizations.html","title":"SpringBootæ§è½ä¼å12æ","lang":"zh-CN","frontmatter":{"title":"SpringBootæ§è½ä¼å12æ","date":"2025-05-25T16:13:00.000Z","category":["é«å¹¶å"],"tags":["æ§è½ä¼å","Spring"],"description":"åè¨ ä¸ç¥éä½ å¨SpringBoot项ç®ä¸ï¼ææ²¡æéå°è¿ä¸é¢è¿æ ·ç代ç ï¼ ä¸æ¬¡æ§æ¥è¯¢äºææç订åï¼
128å
¨è¡¨æ«æ50䏿°æ®ï¼å¯¼è´æ¥å£æ¥è¯¢æ§è½å¾å·®ï¼ä¸¥éçæ¶åå¯è½ä¼å¯¼è´OOMé®é¢ã é®é¢å®ä½ ï¼ + æªå页æ¥è¯¢ + æ ç¼åæºå¶ + æªå¯ç¨æ¹éå¤ç ","author":"èä¸","sidebar":false,"head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"TechArticle\\",\\"headline\\":\\"SpringBootæ§è½ä¼å12æ\\",\\"description\\":\\"åè¨ ä¸ç¥éä½ å¨SpringBoot项ç®ä¸ï¼ææ²¡æéå°è¿ä¸é¢è¿æ ·ç代ç ï¼ ä¸æ¬¡æ§æ¥è¯¢äºææç订åï¼å
¨è¡¨æ«æ50䏿°æ®ï¼å¯¼è´æ¥å£æ¥è¯¢æ§è½å¾å·®ï¼ä¸¥éçæ¶åå¯è½ä¼å¯¼è´OOMé®é¢ã é®é¢å®ä½ ï¼ + æªå页æ¥è¯¢ + æ ç¼åæºå¶ + æªå¯ç¨æ¹éå¤ç \\",\\"keywords\\":\\"SpringBootæ§è½ä¼å12æ,æ§è½ä¼å,Spring,é«å¹¶å\\",\\"image\\":\\"https://files.mdnice.com/user/5303/f9081770-66e4-4c3d-93a9-adb099d364aa.png\\",\\"datePublished\\":\\"2025-05-25T16:13:00.000Z\\",\\"dateModified\\":\\"2025-05-25T16:13:00.000Z\\",\\"author\\":{\\"@type\\":\\"Person\\",\\"name\\":\\"èä¸\\",\\"url\\":\\"https://www.susan.net.cn/contact/\\"},\\"publisher\\":{\\"@type\\":\\"Organization\\",\\"name\\":\\"Javaçªå»é\\",\\"url\\":\\"https://www.susan.net.cn\\",\\"logo\\":{\\"@type\\":\\"ImageObject\\",\\"url\\":\\"https://www.susan.net.cn/logo.png\\"}},\\"mainEntityOfPage\\":{\\"@type\\":\\"WebPage\\",\\"@id\\":\\"https://www.susan.net.cn/article/12-spring-boot-performance-optimizations.html\\"},\\"inLanguage\\":\\"zh-CN\\"}"],["meta",{"property":"og:url","content":"https://www.susan.net.cn/article/12-spring-boot-performance-optimizations.html"}],["meta",{"property":"og:site_name","content":"项ç®å®æç½ - Javaçªå»é"}],["meta",{"property":"og:title","content":"SpringBootæ§è½ä¼å12æ"}],["meta",{"property":"og:description","content":"åè¨ ä¸ç¥éä½ å¨SpringBoot项ç®ä¸ï¼ææ²¡æéå°è¿ä¸é¢è¿æ ·ç代ç ï¼ ä¸æ¬¡æ§æ¥è¯¢äºææç订åï¼å
¨è¡¨æ«æ50䏿°æ®ï¼å¯¼è´æ¥å£æ¥è¯¢æ§è½å¾å·®ï¼ä¸¥éçæ¶åå¯è½ä¼å¯¼è´OOMé®é¢ã é®é¢å®ä½ ï¼ + æªå页æ¥è¯¢ + æ ç¼åæºå¶ + æªå¯ç¨æ¹éå¤ç "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://files.mdnice.com/user/5303/f9081770-66e4-4c3d-93a9-adb099d364aa.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"article:author","content":"èä¸"}],["meta",{"property":"article:tag","content":"Spring"}],["meta",{"property":"article:tag","content":"æ§è½ä¼å"}],["meta",{"property":"article:published_time","content":"2025-05-25T16:13:00.000Z"}],["link",{"rel":"canonical","href":"https://www.susan.net.cn/article/12-spring-boot-performance-optimizations.html"}],["meta",{"name":"keywords","content":"SpringBootæ§è½ä¼å12æ,æ§è½ä¼å,Spring"}],["meta",{"name":"robots","content":"index,follow,archive"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:title","content":"SpringBootæ§è½ä¼å12æ"}],["meta",{"name":"twitter:description","content":"åè¨ ä¸ç¥éä½ å¨SpringBoot项ç®ä¸ï¼ææ²¡æéå°è¿ä¸é¢è¿æ ·ç代ç ï¼ ä¸æ¬¡æ§æ¥è¯¢äºææç订åï¼å
¨è¡¨æ«æ50䏿°æ®ï¼å¯¼è´æ¥å£æ¥è¯¢æ§è½å¾å·®ï¼ä¸¥éçæ¶åå¯è½ä¼å¯¼è´OOMé®é¢ã é®é¢å®ä½ ï¼ + æªå页æ¥è¯¢ + æ ç¼åæºå¶ + æªå¯ç¨æ¹éå¤ç "}]]},"git":{},"filePathRelative":"article/12-spring-boot-performance-optimizations.md","excerpt":"<h2>åè¨</h2>\\n\\n<div class=\\"article-referral-ad\\">\\n<p>æè¿ç¼ºé¡¹ç®ç»åæ³å¿«éæå项ç®å®æè½åï¼å
å«å¤ä¸ªAI项ç®ï¼ï¼æè
æè¿æ¾å·¥ä½ï¼æè
æ³å¦ä¹ AIçå°ä¼ä¼´ï¼å¯ä»¥ççä¸é¢ðð»ç<a class=\\"article-referral-ad-link\\" href=\\"/pay/project.html?from=article_ad1\\" rel=\\"nofollow\\">è¿ä¸ªé¾æ¥</a>ï¼æè®¸ççè½å¤å¸®å°ä½ ï¼ã</p>\\n</div>\\n<p>ä¸ç¥éä½ å¨SpringBoot项ç®ä¸ï¼ææ²¡æéå°è¿ä¸é¢è¿æ ·ç代ç ï¼</p>\\n<div class=\\"language-java line-numbers-mode\\" data-highlighter=\\"shiki\\" data-ext=\\"java\\" style=\\"--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34\\"><pre class=\\"shiki shiki-themes one-light one-dark-pro vp-code\\"><code class=\\"language-java\\"><span class=\\"line\\"><span style=\\"--shiki-light:#383A42;--shiki-dark:#ABB2BF\\">@</span><span style=\\"--shiki-light:#A626A4;--shiki-dark:#E5C07B\\">GetMapping</span><span style=\\"--shiki-light:#383A42;--shiki-dark:#E06C75\\">(</span><span style=\\"--shiki-light:#50A14F;--shiki-dark:#98C379\\">\\"/orders\\"</span><span style=\\"--shiki-light:#383A42;--shiki-dark:#E06C75\\">)</span></span>\\n<span class=\\"line\\"><span style=\\"--shiki-light:#A626A4;--shiki-dark:#C678DD\\">public</span><span style=\\"--shiki-light:#C18401;--shiki-dark:#E5C07B\\"> List</span><span style=\\"--shiki-light:#383A42;--shiki-dark:#56B6C2\\"><</span><span style=\\"--shiki-light:#383A42;--shiki-dark:#E06C75\\">Order</span><span style=\\"--shiki-light:#383A42;--shiki-dark:#56B6C2\\">></span><span style=\\"--shiki-light:#4078F2;--shiki-dark:#61AFEF\\"> listOrders</span><span style=\\"--shiki-light:#383A42;--shiki-dark:#E06C75\\">() {</span></span>\\n<span class=\\"line\\"><span style=\\"--shiki-light:#A626A4;--shiki-dark:#C678DD\\"> return</span><span style=\\"--shiki-light:#E45649;--shiki-dark:#E5C07B\\"> orderDao</span><span style=\\"--shiki-light:#383A42;--shiki-dark:#ABB2BF\\">.</span><span style=\\"--shiki-light:#4078F2;--shiki-dark:#61AFEF\\">findAll</span><span style=\\"--shiki-light:#383A42;--shiki-dark:#ABB2BF\\">();</span><span style=\\"--shiki-light:#383A42;--shiki-dark:#E06C75\\"> </span></span>\\n<span class=\\"line\\"><span style=\\"--shiki-light:#383A42;--shiki-dark:#E06C75\\">}</span></span></code></pre>\\n<div class=\\"line-numbers\\" aria-hidden=\\"true\\" style=\\"counter-reset:line-number 0\\"><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div><div class=\\"line-number\\"></div></div></div>"}');export{k as comp,r as data};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.