-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path8.html
161 lines (157 loc) · 49.4 KB
/
8.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>SQL优化 | 潘鑫博客</title>
<meta name="generator" content="VuePress 1.9.7">
<script data-ad-client="ca-pub-3196441204212737" async="true" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<link rel="icon" href="/favicon.ico">
<link rel="manifest" href="/manifest.json">
<link rel="apple-touch-icon" href="/logo.png">
<link rel="mask-icon" href="/logo.png" color="#3178c6">
<meta name="description" content="分享、学习、coding、新技能get√">
<meta name="theme-color" content="#3178c6">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="msapplication-TileImage" content="/logo.png">
<meta name="msapplication-TileColor" content="#000000">
<link rel="preload" href="/assets/css/0.styles.fe80f2e9.css" as="style"><link rel="preload" href="/assets/js/app.5f0854a6.js" as="script"><link rel="preload" href="/assets/js/3.f7f64212.js" as="script"><link rel="preload" href="/assets/js/1.1f6fb7b3.js" as="script"><link rel="preload" href="/assets/js/23.1c07c451.js" as="script"><link rel="preload" href="/assets/js/11.adfbccf0.js" as="script"><link rel="preload" href="/assets/js/9.bb4d4833.js" as="script"><link rel="prefetch" href="/assets/js/10.b66b38ef.js"><link rel="prefetch" href="/assets/js/100.78b4da2b.js"><link rel="prefetch" href="/assets/js/101.ee84727f.js"><link rel="prefetch" href="/assets/js/102.dc848d6b.js"><link rel="prefetch" href="/assets/js/103.f361cc2a.js"><link rel="prefetch" href="/assets/js/104.a71a873c.js"><link rel="prefetch" href="/assets/js/105.7965ca53.js"><link rel="prefetch" href="/assets/js/106.51336025.js"><link rel="prefetch" href="/assets/js/107.45c417bb.js"><link rel="prefetch" href="/assets/js/108.0f2976ef.js"><link rel="prefetch" href="/assets/js/109.0ae414a1.js"><link rel="prefetch" href="/assets/js/110.9a7cab65.js"><link rel="prefetch" href="/assets/js/111.9d190d3c.js"><link rel="prefetch" href="/assets/js/112.5b7eb8bc.js"><link rel="prefetch" href="/assets/js/113.dca0ced0.js"><link rel="prefetch" href="/assets/js/114.7be479b0.js"><link rel="prefetch" href="/assets/js/115.79291a10.js"><link rel="prefetch" href="/assets/js/116.6e454e33.js"><link rel="prefetch" href="/assets/js/117.0eb9c021.js"><link rel="prefetch" href="/assets/js/118.575d82f3.js"><link rel="prefetch" href="/assets/js/119.b0e9242e.js"><link rel="prefetch" href="/assets/js/12.fe94295c.js"><link rel="prefetch" href="/assets/js/120.2e5869d4.js"><link rel="prefetch" href="/assets/js/121.be71a73d.js"><link rel="prefetch" href="/assets/js/122.7a6105f2.js"><link rel="prefetch" href="/assets/js/123.f4966fb7.js"><link rel="prefetch" href="/assets/js/124.ca2894cd.js"><link rel="prefetch" href="/assets/js/125.dfbc49e5.js"><link rel="prefetch" href="/assets/js/126.8fc5db90.js"><link rel="prefetch" href="/assets/js/127.31c6902d.js"><link rel="prefetch" href="/assets/js/128.743b2224.js"><link rel="prefetch" href="/assets/js/129.c03c1bf8.js"><link rel="prefetch" href="/assets/js/13.275aca95.js"><link rel="prefetch" href="/assets/js/130.f0259eb8.js"><link rel="prefetch" href="/assets/js/131.260123c8.js"><link rel="prefetch" href="/assets/js/132.c4b4d23e.js"><link rel="prefetch" href="/assets/js/133.b5507a0e.js"><link rel="prefetch" href="/assets/js/134.4144189b.js"><link rel="prefetch" href="/assets/js/135.26a3aeaf.js"><link rel="prefetch" href="/assets/js/136.5e57aa9b.js"><link rel="prefetch" href="/assets/js/137.b8f9eac2.js"><link rel="prefetch" href="/assets/js/138.a07d53ab.js"><link rel="prefetch" href="/assets/js/139.e8be300c.js"><link rel="prefetch" href="/assets/js/14.fc183d43.js"><link rel="prefetch" href="/assets/js/140.3903384b.js"><link rel="prefetch" href="/assets/js/141.b533a007.js"><link rel="prefetch" href="/assets/js/142.e040f2e1.js"><link rel="prefetch" href="/assets/js/143.48552a73.js"><link rel="prefetch" href="/assets/js/144.ef7ef634.js"><link rel="prefetch" href="/assets/js/145.9f3cc612.js"><link rel="prefetch" href="/assets/js/146.8751ea67.js"><link rel="prefetch" href="/assets/js/147.18231883.js"><link rel="prefetch" href="/assets/js/148.6adf0490.js"><link rel="prefetch" href="/assets/js/149.26f4fcab.js"><link rel="prefetch" href="/assets/js/15.45a5298a.js"><link rel="prefetch" href="/assets/js/150.1cec2ca5.js"><link rel="prefetch" href="/assets/js/151.40d4f2e7.js"><link rel="prefetch" href="/assets/js/152.4801a104.js"><link rel="prefetch" href="/assets/js/153.5e6048a2.js"><link rel="prefetch" href="/assets/js/154.b26e5de8.js"><link rel="prefetch" href="/assets/js/155.f34776c4.js"><link rel="prefetch" href="/assets/js/156.0a352052.js"><link rel="prefetch" href="/assets/js/157.73bc0e50.js"><link rel="prefetch" href="/assets/js/158.a9efb951.js"><link rel="prefetch" href="/assets/js/159.7856a1a5.js"><link rel="prefetch" href="/assets/js/16.a4d8b71f.js"><link rel="prefetch" href="/assets/js/160.dd2394f8.js"><link rel="prefetch" href="/assets/js/161.eda2e2d8.js"><link rel="prefetch" href="/assets/js/162.f47e3510.js"><link rel="prefetch" href="/assets/js/163.cd8805cb.js"><link rel="prefetch" href="/assets/js/164.a25accb7.js"><link rel="prefetch" href="/assets/js/165.149788af.js"><link rel="prefetch" href="/assets/js/166.ebdaf062.js"><link rel="prefetch" href="/assets/js/167.1d4d4c12.js"><link rel="prefetch" href="/assets/js/168.518c592a.js"><link rel="prefetch" href="/assets/js/169.44686be2.js"><link rel="prefetch" href="/assets/js/17.788db0cf.js"><link rel="prefetch" href="/assets/js/170.9e8b3450.js"><link rel="prefetch" href="/assets/js/18.a406d4c9.js"><link rel="prefetch" href="/assets/js/19.8c4ac333.js"><link rel="prefetch" href="/assets/js/20.94e99294.js"><link rel="prefetch" href="/assets/js/21.3a1d359a.js"><link rel="prefetch" href="/assets/js/22.f6a4e82d.js"><link rel="prefetch" href="/assets/js/24.ee4f4de7.js"><link rel="prefetch" href="/assets/js/25.07821508.js"><link rel="prefetch" href="/assets/js/26.fd1776f7.js"><link rel="prefetch" href="/assets/js/27.f603b8c7.js"><link rel="prefetch" href="/assets/js/28.b6fa98bc.js"><link rel="prefetch" href="/assets/js/29.00775f7d.js"><link rel="prefetch" href="/assets/js/30.a1a51f18.js"><link rel="prefetch" href="/assets/js/31.1d4a1376.js"><link rel="prefetch" href="/assets/js/32.141251b3.js"><link rel="prefetch" href="/assets/js/33.258ec86d.js"><link rel="prefetch" href="/assets/js/34.50a47780.js"><link rel="prefetch" href="/assets/js/35.f7b507f4.js"><link rel="prefetch" href="/assets/js/36.5d765641.js"><link rel="prefetch" href="/assets/js/37.87bb7561.js"><link rel="prefetch" href="/assets/js/38.e84b3455.js"><link rel="prefetch" href="/assets/js/39.4a0580e1.js"><link rel="prefetch" href="/assets/js/4.da5317d1.js"><link rel="prefetch" href="/assets/js/40.9614f0dc.js"><link rel="prefetch" href="/assets/js/41.8cfc0a88.js"><link rel="prefetch" href="/assets/js/42.c1ac30d9.js"><link rel="prefetch" href="/assets/js/43.078d4b8d.js"><link rel="prefetch" href="/assets/js/44.5f2bb84c.js"><link rel="prefetch" href="/assets/js/45.fb782f49.js"><link rel="prefetch" href="/assets/js/46.d3e8c6c7.js"><link rel="prefetch" href="/assets/js/47.f32687da.js"><link rel="prefetch" href="/assets/js/48.52455dee.js"><link rel="prefetch" href="/assets/js/49.3ec6e9ea.js"><link rel="prefetch" href="/assets/js/5.80ee90d8.js"><link rel="prefetch" href="/assets/js/50.e81623bb.js"><link rel="prefetch" href="/assets/js/51.ad1f4578.js"><link rel="prefetch" href="/assets/js/52.317c5086.js"><link rel="prefetch" href="/assets/js/53.efb06bba.js"><link rel="prefetch" href="/assets/js/54.94ea492e.js"><link rel="prefetch" href="/assets/js/55.f56267ae.js"><link rel="prefetch" href="/assets/js/56.7fae1dd9.js"><link rel="prefetch" href="/assets/js/57.5d24b40a.js"><link rel="prefetch" href="/assets/js/58.48ee4a72.js"><link rel="prefetch" href="/assets/js/59.75f828a6.js"><link rel="prefetch" href="/assets/js/6.a3e119af.js"><link rel="prefetch" href="/assets/js/60.8f26fbf0.js"><link rel="prefetch" href="/assets/js/61.d0fee4d2.js"><link rel="prefetch" href="/assets/js/62.4d76abaf.js"><link rel="prefetch" href="/assets/js/63.b93e7b89.js"><link rel="prefetch" href="/assets/js/64.4dc1429f.js"><link rel="prefetch" href="/assets/js/65.d35e5607.js"><link rel="prefetch" href="/assets/js/66.116328f6.js"><link rel="prefetch" href="/assets/js/67.e6f7ba4f.js"><link rel="prefetch" href="/assets/js/68.6d873240.js"><link rel="prefetch" href="/assets/js/69.91871e94.js"><link rel="prefetch" href="/assets/js/7.e26b8177.js"><link rel="prefetch" href="/assets/js/70.c0b54436.js"><link rel="prefetch" href="/assets/js/71.09911c7d.js"><link rel="prefetch" href="/assets/js/72.0183f74b.js"><link rel="prefetch" href="/assets/js/73.a1d84bb2.js"><link rel="prefetch" href="/assets/js/74.1d6dbb6d.js"><link rel="prefetch" href="/assets/js/75.20187f14.js"><link rel="prefetch" href="/assets/js/76.fee9c341.js"><link rel="prefetch" href="/assets/js/77.bbd7ce44.js"><link rel="prefetch" href="/assets/js/78.e9e953d6.js"><link rel="prefetch" href="/assets/js/79.386d807a.js"><link rel="prefetch" href="/assets/js/8.7d5f6f07.js"><link rel="prefetch" href="/assets/js/80.8344f7cd.js"><link rel="prefetch" href="/assets/js/81.700814a5.js"><link rel="prefetch" href="/assets/js/82.3b286ae4.js"><link rel="prefetch" href="/assets/js/83.cd766e6c.js"><link rel="prefetch" href="/assets/js/84.c5cd7a54.js"><link rel="prefetch" href="/assets/js/85.3617ed6d.js"><link rel="prefetch" href="/assets/js/86.f09f828b.js"><link rel="prefetch" href="/assets/js/87.6272eafd.js"><link rel="prefetch" href="/assets/js/88.fbe71e59.js"><link rel="prefetch" href="/assets/js/89.141c76fc.js"><link rel="prefetch" href="/assets/js/90.b4251022.js"><link rel="prefetch" href="/assets/js/91.b2848003.js"><link rel="prefetch" href="/assets/js/92.36e6ad37.js"><link rel="prefetch" href="/assets/js/93.758e3058.js"><link rel="prefetch" href="/assets/js/94.ec886629.js"><link rel="prefetch" href="/assets/js/95.118d7aa7.js"><link rel="prefetch" href="/assets/js/96.c0ad1a2b.js"><link rel="prefetch" href="/assets/js/97.7b550727.js"><link rel="prefetch" href="/assets/js/98.d031475d.js"><link rel="prefetch" href="/assets/js/99.3e39bc19.js">
<link rel="stylesheet" href="/assets/css/0.styles.fe80f2e9.css">
</head>
<body>
<div id="app" data-server-rendered="true"><div class="theme-container no-sidebar" data-v-7dd95ae2><div data-v-7dd95ae2><div class="password-shadow password-wrapper-out" style="display:none;" data-v-59e6cb88 data-v-7dd95ae2 data-v-7dd95ae2><h3 class="title" data-v-59e6cb88>潘鑫博客</h3> <p class="description" data-v-59e6cb88>分享、学习、coding、新技能get√</p> <label id="box" class="inputBox" data-v-59e6cb88><input type="password" value="" data-v-59e6cb88> <span data-v-59e6cb88>Konck! Knock!</span> <button data-v-59e6cb88>OK</button></label> <div class="footer" data-v-59e6cb88><span data-v-59e6cb88><i class="iconfont reco-theme" data-v-59e6cb88></i> <a target="blank" href="https://vuepress-theme-reco.recoluan.com" data-v-59e6cb88>vuePress-theme-reco</a></span> <span data-v-59e6cb88><i class="iconfont reco-copyright" data-v-59e6cb88></i> <a data-v-59e6cb88><span data-v-59e6cb88>apan</span>
<span data-v-59e6cb88>2015 - </span>
2024
</a></span></div></div> <div class="hide" data-v-7dd95ae2><header class="navbar" data-v-7dd95ae2><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/" class="home-link router-link-active"><!----> <span class="site-name">潘鑫博客</span></a> <div class="links"><div class="color-picker"><a class="color-button"><i class="iconfont reco-color"></i></a> <div class="color-picker-menu" style="display:none;"><div class="mode-options"><h4 class="title">Choose mode</h4> <ul class="color-mode-options"><li class="dark">dark</li><li class="auto active">auto</li><li class="light">light</li></ul></div></div></div> <div class="search-box"><i class="iconfont reco-search"></i> <input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/" class="nav-link"><i class="iconfont reco-home"></i>
首页
</a></div><div class="nav-item"><a href="/tag/code/" class="nav-link"><i class="iconfont reco-api"></i>
编程
</a></div><div class="nav-item"><a href="/about/" class="nav-link"><i class="iconfont reco-account"></i>
关于
</a></div><div class="nav-item"><a href="/timeline/" class="nav-link"><i class="iconfont reco-date"></i>
TimeLine
</a></div><div class="nav-item"><div class="dropdown-wrapper"><a class="dropdown-title"><span class="title"><i class="iconfont reco-github"></i>
github
</span> <span class="arrow right"></span></a> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="https://gitee.com/pxpy/homeRepair" target="_blank" rel="noopener noreferrer" class="nav-link external"><i class="undefined"></i>
爱居网
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-item"><!----> <a href="https://gitee.com/pxpy/IEMS" target="_blank" rel="noopener noreferrer" class="nav-link external"><i class="undefined"></i>
智慧设备维修系统
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-item"><!----> <a href="https://github.com/pxpy/pxpy.github.io" target="_blank" rel="noopener noreferrer" class="nav-link external"><i class="undefined"></i>
个人博客
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li></ul></div></div> <!----></nav></div></header> <div class="sidebar-mask" data-v-7dd95ae2></div> <aside class="sidebar" data-v-7dd95ae2><div class="personal-info-wrapper" data-v-1fad0c41 data-v-7dd95ae2><img src="/logo.png" alt="author-avatar" class="personal-img" data-v-1fad0c41> <h3 class="name" data-v-1fad0c41>
apan
</h3> <div class="num" data-v-1fad0c41><div data-v-1fad0c41><h3 data-v-1fad0c41>156</h3> <h6 data-v-1fad0c41>Articles</h6></div> <div data-v-1fad0c41><h3 data-v-1fad0c41>89</h3> <h6 data-v-1fad0c41>Tags</h6></div></div> <ul class="social-links" data-v-1fad0c41></ul> <hr data-v-1fad0c41></div> <nav class="nav-links"><div class="nav-item"><a href="/" class="nav-link"><i class="iconfont reco-home"></i>
首页
</a></div><div class="nav-item"><a href="/tag/code/" class="nav-link"><i class="iconfont reco-api"></i>
编程
</a></div><div class="nav-item"><a href="/about/" class="nav-link"><i class="iconfont reco-account"></i>
关于
</a></div><div class="nav-item"><a href="/timeline/" class="nav-link"><i class="iconfont reco-date"></i>
TimeLine
</a></div><div class="nav-item"><div class="dropdown-wrapper"><a class="dropdown-title"><span class="title"><i class="iconfont reco-github"></i>
github
</span> <span class="arrow right"></span></a> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="https://gitee.com/pxpy/homeRepair" target="_blank" rel="noopener noreferrer" class="nav-link external"><i class="undefined"></i>
爱居网
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-item"><!----> <a href="https://gitee.com/pxpy/IEMS" target="_blank" rel="noopener noreferrer" class="nav-link external"><i class="undefined"></i>
智慧设备维修系统
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-item"><!----> <a href="https://github.com/pxpy/pxpy.github.io" target="_blank" rel="noopener noreferrer" class="nav-link external"><i class="undefined"></i>
个人博客
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li></ul></div></div> <!----></nav> <!----> </aside> <div class="password-shadow password-wrapper-in" style="display:none;" data-v-59e6cb88 data-v-7dd95ae2><h3 class="title" data-v-59e6cb88>SQL优化</h3> <!----> <label id="box" class="inputBox" data-v-59e6cb88><input type="password" value="" data-v-59e6cb88> <span data-v-59e6cb88>Konck! Knock!</span> <button data-v-59e6cb88>OK</button></label> <div class="footer" data-v-59e6cb88><span data-v-59e6cb88><i class="iconfont reco-theme" data-v-59e6cb88></i> <a target="blank" href="https://vuepress-theme-reco.recoluan.com" data-v-59e6cb88>vuePress-theme-reco</a></span> <span data-v-59e6cb88><i class="iconfont reco-copyright" data-v-59e6cb88></i> <a data-v-59e6cb88><span data-v-59e6cb88>apan</span>
<span data-v-59e6cb88>2015 - </span>
2024
</a></span></div></div> <div data-v-7dd95ae2><div data-v-7dd95ae2><main class="page"><section style="display:;"><div class="page-title"><h1 class="title">SQL优化</h1> <div data-v-8a445198><i class="iconfont reco-account" data-v-8a445198><span data-v-8a445198>apan</span></i> <i class="iconfont reco-date" data-v-8a445198><span data-v-8a445198>11/22/2022</span></i> <i class="iconfont reco-eye" data-v-8a445198><span id="/8.html" data-flag-title="Your Article Title" class="leancloud-visitors" data-v-8a445198><a class="leancloud-visitors-count" style="font-size:.9rem;font-weight:normal;color:#999;"></a></span></i> <i class="tags iconfont reco-tag" data-v-8a445198><span class="tag-item" data-v-8a445198>sql</span><span class="tag-item" data-v-8a445198>后端</span></i></div></div> <div class="theme-reco-content content__default"><div class="adswrapper"><!----> <div style="display:none;"></div> <ins data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-3196441204212737" data-ad-slot="7162284157" data-ad-test="" data-ad-region="" class="adsbygoogle" style="display:block;"></ins> <!----> <div style="display:none;"> (adsbygoogle = window.adsbygoogle || []).push({}); </div></div> <h2 id="索引"><a href="#索引" class="header-anchor">#</a> 索引</h2> <p>空间换时间,索引的体积大约是表的1.5倍</p> <p>一般设置在表的某些列上</p> <p>两个列合起来索引是复合索引</p> <p>索引只能放在硬盘中,所以磁盘的IO次数决定了查询性能</p> <h4 id="二叉树"><a href="#二叉树" class="header-anchor">#</a> 二叉树</h4> <p>B树(Balance Tree)</p> <p>高度小于二叉树</p> <p>P表示指针</p> <p>B+树</p> <h4 id="应该加索引"><a href="#应该加索引" class="header-anchor">#</a> 应该加索引</h4> <ol><li><p>经常被查询的列并且数据量比较大</p></li> <li><p>自增主键默认索引</p></li></ol> <h4 id="不需要加索引的列"><a href="#不需要加索引的列" class="header-anchor">#</a> 不需要加索引的列</h4> <p>数据离散值低(数据重复率高,例如性别)</p> <h3 id="测试"><a href="#测试" class="header-anchor">#</a> 测试</h3> <p>添加索引前,大约0.5s</p> <p>添加索引后,大约25ms,差了20倍</p> <p>默认添加的索引是BTREE</p> <div class="language-sql line-numbers-mode"><pre class="language-sql"><code><span class="token keyword">SELECT</span> <span class="token operator">*</span> <span class="token keyword">from</span> product <span class="token keyword">WHERE</span> title <span class="token operator">=</span> <span class="token string">"998083趾饭"</span>
<span class="token keyword">CREATE</span> <span class="token keyword">INDEX</span> index_title <span class="token keyword">on</span> product<span class="token punctuation">(</span>title<span class="token punctuation">)</span>
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br></div></div><h3 id="hash索引"><a href="#hash索引" class="header-anchor">#</a> HASH索引</h3> <p>Hash函数: 值 ==> 数</p> <p>Hash索引: 值 ==> 桶 ==> 数据行</p> <p>应用条件更为苛刻</p> <p>最常用的索引也就是B-tree索引和Hash索引,且只有<code>Memory</code>,<code>NDB</code>两种引擎支持Hash索引。</p> <p><img src="C:%5CUsers%5CPanXin%5CAppData%5CRoaming%5Cmarktext%5Cimages%5C2022-11-21-10-29-16-image.png" alt=""></p> <h3 id="联合索引"><a href="#联合索引" class="header-anchor">#</a> 联合索引</h3> <p>两个列合起来是一个索引</p> <h4 id="联合索引的最左原则"><a href="#联合索引的最左原则" class="header-anchor">#</a> 联合索引的最左原则:</h4> <p>一定要按照顺序查询,最左侧列一定要出现</p> <h3 id="索引失效"><a href="#索引失效" class="header-anchor">#</a> 索引失效</h3> <ol><li><p>%%,双%like会使索引失效</p></li> <li><p>右侧单%,索引正常</p></li> <li><p>or的左右两侧有一个没有索引会失效</p></li> <li><p>!= > <</p></li> <li><p>索引提高了查询的效率,但也降低了增删改的效率</p></li> <li><p>尽量使用数字类型字段</p></li></ol> <h3 id="执行计划"><a href="#执行计划" class="header-anchor">#</a> 执行计划</h3> <p>语句前加<code>explain</code>可以查看执行时是否有索引等信息</p> <ol><li><p>rows 扫描行数,不准,一般值越小越好</p></li> <li></li></ol> <p>EXPLAIN SELECT * from product WHERE title = "998105驼跺"</p> <p>id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE product ref index_title index_title 767 const 1 Using where</p> <h3 id="_5-性能分析"><a href="#_5-性能分析" class="header-anchor">#</a> 5. 性能分析</h3> <p>show global status like "com_______"</p> <h4 id="慢查询日志"><a href="#慢查询日志" class="header-anchor">#</a> 慢查询日志</h4> <p>SHOW GLOBAL VARIABLES LIKE '%log%';</p> <p>开启方法</p> <h3 id="_6-mysql查询优化方法-重点"><a href="#_6-mysql查询优化方法-重点" class="header-anchor">#</a> 6. Mysql查询优化方法<mark> 重点</mark></h3> <p>思路:便面全表扫描</p> <ol><li><p>禁止用* 来查询,需要指定字段</p></li> <li><p><mark>in的个数在1000个以内</mark></p></li> <li><p>查询一条数据使用limit 1</p></li> <li><p>尽量使用inner join 避免使用left join</p></li> <li><p>!= 用 > or < 替换</p></li> <li><p>between代替in</p></li> <li><p>exist 代替in</p></li></ol> <p>例如:优化前10s,优化后5s</p> <div class="language-sql line-numbers-mode"><pre class="language-sql"><code><span class="token keyword">SELECT</span> <span class="token operator">*</span> <span class="token keyword">from</span> product <span class="token keyword">WHERE</span> title <span class="token operator">IN</span> <span class="token punctuation">(</span><span class="token keyword">SELECT</span> title <span class="token keyword">FROM</span> product <span class="token keyword">WHERE</span> title <span class="token operator">=</span> <span class="token string">'24吻'</span> <span class="token operator">or</span> title <span class="token operator">=</span> <span class="token string">'25折'</span><span class="token punctuation">)</span>
<span class="token keyword">SELECT</span> <span class="token operator">*</span> <span class="token keyword">FROM</span> product p <span class="token keyword">WHERE</span> <span class="token keyword">EXISTS</span> <span class="token punctuation">(</span><span class="token keyword">SELECT</span> <span class="token number">0</span> <span class="token keyword">FROM</span> product t <span class="token keyword">WHERE</span> p<span class="token punctuation">.</span>id <span class="token operator">=</span> t<span class="token punctuation">.</span>id <span class="token operator">and</span> <span class="token punctuation">(</span>p<span class="token punctuation">.</span>title <span class="token operator">=</span> <span class="token string">'24吻'</span> <span class="token operator">or</span> p<span class="token punctuation">.</span>title <span class="token operator">=</span><span class="token string">'25折'</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br></div></div><ol start="8"><li><p>left josin 代替in</p></li> <li><p>尽量不适用mysql自己的函数</p></li> <li><p>使用union all 代替 union</p></li></ol> <h2 id="主从备份"><a href="#主从备份" class="header-anchor">#</a> 主从备份</h2> <p>双机热备就是使用MySQL提供的一种主从备份机制实现。所谓双机热备其实是一个复制的过程,复制过程中一个服务器充当主服务器,一个或多个服务器充当从服务。这个复制的过程实质上是从服务器复制主服务器上MySQL的二进制日志(bin-log),并在从服务器上还原主服务器上的操作。</p> <h3 id="要求"><a href="#要求" class="header-anchor">#</a> 要求</h3> <ol><li><p>MySQL的版本高于3.2</p></li> <li><p>从服务器的MySQL版本不可以低于主服务器的数据库版本</p></li></ol> <h3 id="操作"><a href="#操作" class="header-anchor">#</a> 操作</h3> <h4 id="_1-主服务器授权"><a href="#_1-主服务器授权" class="header-anchor">#</a> 1. 主服务器授权</h4> <div class="language-sql line-numbers-mode"><pre class="language-sql"><code><span class="token keyword">GRANT</span> <span class="token keyword">FILE</span><span class="token punctuation">,</span><span class="token keyword">SELECT</span><span class="token punctuation">,</span><span class="token keyword">REPLICATION</span> SLAVE <span class="token keyword">ON</span> <span class="token operator">*</span><span class="token punctuation">.</span><span class="token operator">*</span> <span class="token keyword">TO</span> <span class="token keyword">backup</span><span class="token variable">@192.168.11.40</span> IDENTIFIED <span class="token keyword">BY</span> <span class="token string">'123456'</span><span class="token punctuation">;</span>
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br></div></div><h4 id="_2-同步数据"><a href="#_2-同步数据" class="header-anchor">#</a> 2. 同步数据</h4> <h4 id="_3-配置主服务器"><a href="#_3-配置主服务器" class="header-anchor">#</a> 3. 配置主服务器</h4> <p>停止MySQL服务,修改主的my.ini,找到mysqId</p> <div class="language-ini line-numbers-mode"><pre class="language-ini"><code><span class="token section"><span class="token punctuation">[</span><span class="token section-name selector">mysqld</span><span class="token punctuation">]</span></span>
<span class="token key attr-name">server-id</span><span class="token punctuation">=</span><span class="token value attr-value">1</span>
<span class="token comment">#是1~2^23-1内的唯一值且不能与B或其它slave服务中的配置相同</span>
<span class="token key attr-name">log-bin</span> <span class="token punctuation">=</span> <span class="token value attr-value">bin_log</span>
<span class="token comment">#日志文件以bin_log为前缀,如果不给log-bin赋值,日志文件将以#master-server-hostname为前缀</span>
<span class="token key attr-name">binlog-ignore-db</span><span class="token punctuation">=</span> <span class="token value attr-value">test</span>
<span class="token comment">#日志文件跳过的数据库(可选属性 ),如果有多个数据库,可以重复配置这个属性</span>
<span class="token key attr-name">binlog-do-db</span><span class="token punctuation">=</span> <span class="token value attr-value">db_test</span>
<span class="token comment">#日志文件操作的数据库(可选属性 ,默认所有数据库的相关操作都写入二进制日志文件) ,如果有多个数据库,可以重复配置这个属性</span>
<span class="token key attr-name">expire_logs_days</span><span class="token punctuation">=</span><span class="token value attr-value">30</span>
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br></div></div><p>启动MySQL</p> <h4 id="_4-修改从服务器"><a href="#_4-修改从服务器" class="header-anchor">#</a> 4. 修改从服务器</h4> <p>修改/etc/my.cnf</p> <div class="language-ini line-numbers-mode"><pre class="language-ini"><code><span class="token key attr-name">server-id</span><span class="token punctuation">=</span><span class="token value attr-value">2</span>
<span class="token comment">#唯一并与主服务器上的server-id不同。</span>
<span class="token key attr-name">replicate-do-db</span><span class="token punctuation">=</span><span class="token value attr-value">db_test</span>
<span class="token comment">#复制操作要针对的数据库(可选,默认为全部),同样如果有多个数据库则可配置多次本属性。</span>
<span class="token key attr-name">expire_logs_days</span><span class="token punctuation">=</span><span class="token value attr-value">30</span>
<span class="token comment">#设置bin-log日志保存的天数</span>
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br></div></div><div class="language-bash line-numbers-mode"><pre class="language-bash"><code>systemctl restart mysqld.service <span class="token comment">#重启 mysql</span>
用mysql <span class="token parameter variable">-u</span> root <span class="token parameter variable">-p</span> 登录MySQL,并执行如下命令:
mysql<span class="token operator">></span>change master to <span class="token punctuation">\</span>
-<span class="token operator">></span>master_host<span class="token operator">=</span><span class="token string">'192.168.11.184'</span>,
-<span class="token operator">></span>master_user<span class="token operator">=</span><span class="token string">'backup'</span>,
-<span class="token operator">></span>master_password<span class="token operator">=</span><span class="token string">'123456'</span><span class="token punctuation">;</span>
systemctl restart mysqld.service <span class="token comment">#重启 mysql</span>
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br></div></div><ol><li><p>start slave;</p></li> <li><p>检查状态show slave status \G;</p></li></ol> <p>必须两个都是yes,如果是connecting,关闭下防火墙试一下,进一步在主数据库插入一条数据后在从数据库检查下有没有数据</p> <p>Slave_IO_Running: Yes
Slave_SQL_Running: Yes</p> <div class="language-pure line-numbers-mode"><pre class="language-pure"><code><span class="token operator">***************************</span> <span class="token number">1</span><span class="token operator">.</span> <span class="token function">row</span> <span class="token operator">***************************</span>
Slave_IO_State<span class="token operator">:</span> Waiting for master to send event
Master_Host<span class="token operator">:</span> <span class="token number">192.168</span><span class="token number">.11</span><span class="token number">.184</span>
Master_User<span class="token operator">:</span> backup
Master_Port<span class="token operator">:</span> <span class="token number">3306</span>
Connect_Retry<span class="token operator">:</span> <span class="token number">60</span>
Master_Log_File<span class="token operator">:</span> bin_log<span class="token operator">.</span><span class="token number">000001</span>
Read_Master_Log_Pos<span class="token operator">:</span> <span class="token number">107</span>
Relay_Log_File<span class="token operator">:</span> localhost<span class="token operator">-</span>relay<span class="token operator">-</span>bin<span class="token operator">.</span><span class="token number">000004</span>
Relay_Log_Pos<span class="token operator">:</span> <span class="token number">302</span>
Relay_Master_Log_File<span class="token operator">:</span> bin_log<span class="token operator">.</span><span class="token number">000001</span>
Slave_IO_Running<span class="token operator">:</span> Yes
Slave_SQL_Running<span class="token operator">:</span> Yes
Replicate_Do_DB<span class="token operator">:</span> security
Replicate_Ignore_DB<span class="token operator">:</span>
Replicate_Do_Table<span class="token operator">:</span>
Replicate_Ignore_Table<span class="token operator">:</span>
Replicate_Wild_Do_Table<span class="token operator">:</span>
Replicate_Wild_Ignore_Table<span class="token operator">:</span>
Last_Errno<span class="token operator">:</span> <span class="token number">0</span>
Last_Error<span class="token operator">:</span>
Skip_Counter<span class="token operator">:</span> <span class="token number">0</span>
Exec_Master_Log_Pos<span class="token operator">:</span> <span class="token number">107</span>
Relay_Log_Space<span class="token operator">:</span> <span class="token number">513</span>
Until_Condition<span class="token operator">:</span> None
Until_Log_File<span class="token operator">:</span>
Until_Log_Pos<span class="token operator">:</span> <span class="token number">0</span>
Master_SSL_Allowed<span class="token operator">:</span> No
Master_SSL_CA_File<span class="token operator">:</span>
Master_SSL_CA_Path<span class="token operator">:</span>
Master_SSL_Cert<span class="token operator">:</span>
Master_SSL_Cipher<span class="token operator">:</span>
Master_SSL_Key<span class="token operator">:</span>
Seconds_Behind_Master<span class="token operator">:</span> <span class="token number">0</span>
Master_SSL_Verify_Server_Cert<span class="token operator">:</span> No
Last_IO_Errno<span class="token operator">:</span> <span class="token number">0</span>
Last_IO_Error<span class="token operator">:</span>
Last_SQL_Errno<span class="token operator">:</span> <span class="token number">0</span>
Last_SQL_Error<span class="token operator">:</span>
Replicate_Ignore_Server_Ids<span class="token operator">:</span>
Master_Server_Id<span class="token operator">:</span> <span class="token number">1</span>
Master_UUID<span class="token operator">:</span>
Master_Info_File<span class="token operator">:</span> <span class="token operator">/</span><span class="token function">var</span><span class="token operator">/</span>lib<span class="token operator">/</span>mysql<span class="token operator">/</span>master<span class="token operator">.</span>info
SQL_Delay<span class="token operator">:</span> <span class="token number">0</span>
SQL_Remaining_Delay<span class="token operator">:</span> <span class="token keyword">NULL</span>
Slave_SQL_Running_State<span class="token operator">:</span> Slave has read <span class="token function">all</span> relay log<span class="token punctuation">;</span> waiting for more updates
Master_Retry_Count<span class="token operator">:</span> <span class="token number">86400</span>
Master_Bind<span class="token operator">:</span>
Last_IO_Error_Timestamp<span class="token operator">:</span>
Last_SQL_Error_Timestamp<span class="token operator">:</span>
Master_SSL_Crl<span class="token operator">:</span>
Master_SSL_Crlpath<span class="token operator">:</span>
Retrieved_Gtid_Set<span class="token operator">:</span>
Executed_Gtid_Set<span class="token operator">:</span>
Auto_Position<span class="token operator">:</span> <span class="token number">0</span>
Replicate_Rewrite_DB<span class="token operator">:</span>
Channel_Name<span class="token operator">:</span>
Master_TLS_Version<span class="token operator">:</span>
<span class="token number">1</span> <span class="token function">row</span> in set <span class="token punctuation">(</span><span class="token number">0.00</span> sec<span class="token punctuation">)</span>
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br><span class="line-number">16</span><br><span class="line-number">17</span><br><span class="line-number">18</span><br><span class="line-number">19</span><br><span class="line-number">20</span><br><span class="line-number">21</span><br><span class="line-number">22</span><br><span class="line-number">23</span><br><span class="line-number">24</span><br><span class="line-number">25</span><br><span class="line-number">26</span><br><span class="line-number">27</span><br><span class="line-number">28</span><br><span class="line-number">29</span><br><span class="line-number">30</span><br><span class="line-number">31</span><br><span class="line-number">32</span><br><span class="line-number">33</span><br><span class="line-number">34</span><br><span class="line-number">35</span><br><span class="line-number">36</span><br><span class="line-number">37</span><br><span class="line-number">38</span><br><span class="line-number">39</span><br><span class="line-number">40</span><br><span class="line-number">41</span><br><span class="line-number">42</span><br><span class="line-number">43</span><br><span class="line-number">44</span><br><span class="line-number">45</span><br><span class="line-number">46</span><br><span class="line-number">47</span><br><span class="line-number">48</span><br><span class="line-number">49</span><br><span class="line-number">50</span><br><span class="line-number">51</span><br><span class="line-number">52</span><br><span class="line-number">53</span><br><span class="line-number">54</span><br><span class="line-number">55</span><br><span class="line-number">56</span><br><span class="line-number">57</span><br><span class="line-number">58</span><br><span class="line-number">59</span><br></div></div><h3 id="失败的解决办法"><a href="#失败的解决办法" class="header-anchor">#</a> 失败的解决办法</h3> <p><img src="https://jsd.cdn.zzko.cn/gh/pxpy/img@master/lQLPJxbk9Cy0gznNAw7NA0iwDiEo4xB9fiMDeC8mxoCbAA_840_782.6gxpbjllu2g0.webp" alt="lQLPJxbk9Cy0gznNAw7NA0iwDiEo4xB9fiMDeC8mxoCbAA_840_782"></p> <p><a href="https://blog.csdn.net/zzddada/article/details/113352717" target="_blank" rel="nofollow noopener noreferrer">MySQL主从同步故障:Slave_SQL_Running:No 两种解决办法_Lucky@Dong的博客-CSDN博客<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a><a href="https://blog.csdn.net/zzddada/article/details/113352717" target="_blank" rel="nofollow noopener noreferrer">MySQL主从同步故障:Slave_SQL_Running:No 两种解决办法_Lucky@Dong的博客-CSDN博客<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h3 id="spring-boot-读写分离"><a href="#spring-boot-读写分离" class="header-anchor">#</a> spring boot 读写分离</h3> <p><a href="https://gitee.com/baomidou/dynamic-datasource-spring-boot-starter" target="_blank" rel="nofollow noopener noreferrer">dynamic-datasource-spring-boot-starter: 基于 SpringBoot 多数据源 动态数据源 主从分离 快速启动器 支持分布式事务 (gitee.com)<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <p>如果数据库挂了一个,例如从服务器,会一直报错,项目也不能启动,需要注释不能使用的数据源</p> <h3 id="mysql备份"><a href="#mysql备份" class="header-anchor">#</a> MySQL备份</h3></div></section> <footer class="page-edit"><!----> <!----></footer> <!----> <div class="comments-wrapper"><!----></div></main></div> <!----></div> <ul class="sub-sidebar sub-sidebar-wrapper" style="width:12rem;" data-v-b57cc07c data-v-7dd95ae2><li class="level-2" data-v-b57cc07c><a href="/8.html#索引" class="sidebar-link reco-side-索引" data-v-b57cc07c>索引</a></li><li class="level-3" data-v-b57cc07c><a href="/8.html#测试" class="sidebar-link reco-side-测试" data-v-b57cc07c>测试</a></li><li class="level-3" data-v-b57cc07c><a href="/8.html#hash索引" class="sidebar-link reco-side-hash索引" data-v-b57cc07c>HASH索引</a></li><li class="level-3" data-v-b57cc07c><a href="/8.html#联合索引" class="sidebar-link reco-side-联合索引" data-v-b57cc07c>联合索引</a></li><li class="level-3" data-v-b57cc07c><a href="/8.html#索引失效" class="sidebar-link reco-side-索引失效" data-v-b57cc07c>索引失效</a></li><li class="level-3" data-v-b57cc07c><a href="/8.html#执行计划" class="sidebar-link reco-side-执行计划" data-v-b57cc07c>执行计划</a></li><li class="level-3" data-v-b57cc07c><a href="/8.html#_5-性能分析" class="sidebar-link reco-side-_5-性能分析" data-v-b57cc07c>5. 性能分析</a></li><li class="level-3" data-v-b57cc07c><a href="/8.html#_6-mysql查询优化方法-重点" class="sidebar-link reco-side-_6-mysql查询优化方法-重点" data-v-b57cc07c>6. Mysql查询优化方法</a></li><li class="level-2" data-v-b57cc07c><a href="/8.html#主从备份" class="sidebar-link reco-side-主从备份" data-v-b57cc07c>主从备份</a></li><li class="level-3" data-v-b57cc07c><a href="/8.html#要求" class="sidebar-link reco-side-要求" data-v-b57cc07c>要求</a></li><li class="level-3" data-v-b57cc07c><a href="/8.html#操作" class="sidebar-link reco-side-操作" data-v-b57cc07c>操作</a></li><li class="level-3" data-v-b57cc07c><a href="/8.html#失败的解决办法" class="sidebar-link reco-side-失败的解决办法" data-v-b57cc07c>失败的解决办法</a></li><li class="level-3" data-v-b57cc07c><a href="/8.html#spring-boot-读写分离" class="sidebar-link reco-side-spring-boot-读写分离" data-v-b57cc07c>spring boot 读写分离</a></li><li class="level-3" data-v-b57cc07c><a href="/8.html#mysql备份" class="sidebar-link reco-side-mysql备份" data-v-b57cc07c>MySQL备份</a></li></ul></div></div></div><div class="global-ui"><div class="back-to-ceiling" style="right:1rem;bottom:6rem;width:2.5rem;height:2.5rem;border-radius:.25rem;line-height:2.5rem;display:none;" data-v-c6073ba8 data-v-c6073ba8><svg t="1574745035067" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5404" class="icon" data-v-c6073ba8><path d="M526.60727968 10.90185116a27.675 27.675 0 0 0-29.21455937 0c-131.36607665 82.28402758-218.69155461 228.01873535-218.69155402 394.07834331a462.20625001 462.20625001 0 0 0 5.36959153 69.94390903c1.00431239 6.55289093-0.34802892 13.13561351-3.76865779 18.80351572-32.63518765 54.11355614-51.75690182 118.55860487-51.7569018 187.94566865a371.06718723 371.06718723 0 0 0 11.50484808 91.98906777c6.53300375 25.50556257 41.68394495 28.14064038 52.69160883 4.22606766 17.37162448-37.73630017 42.14135425-72.50938081 72.80769204-103.21549295 2.18761121 3.04276886 4.15646224 6.24463696 6.40373557 9.22774369a1871.4375 1871.4375 0 0 0 140.04691725 5.34970492 1866.36093723 1866.36093723 0 0 0 140.04691723-5.34970492c2.24727335-2.98310674 4.21612437-6.18497483 6.3937923-9.2178004 30.66633723 30.70611158 55.4360664 65.4791928 72.80769147 103.21549355 11.00766384 23.91457269 46.15860503 21.27949489 52.69160879-4.22606768a371.15156223 371.15156223 0 0 0 11.514792-91.99901164c0-69.36717486-19.13165746-133.82216804-51.75690182-187.92578088-3.42062944-5.66790279-4.76302748-12.26056868-3.76865837-18.80351632a462.20625001 462.20625001 0 0 0 5.36959269-69.943909c-0.00994388-166.08943902-87.32547796-311.81420293-218.6915546-394.09823051zM605.93803103 357.87693858a93.93749974 93.93749974 0 1 1-187.89594924 6.1e-7 93.93749974 93.93749974 0 0 1 187.89594924-6.1e-7z" p-id="5405" data-v-c6073ba8></path><path d="M429.50777625 765.63860547C429.50777625 803.39355007 466.44236686 1000.39046097 512.00932183 1000.39046097c45.56695499 0 82.4922232-197.00623328 82.5015456-234.7518555 0-37.75494459-36.9345906-68.35043303-82.4922232-68.34111062-45.57627738-0.00932239-82.52019037 30.59548842-82.51086798 68.34111062z" p-id="5406" data-v-c6073ba8></path></svg></div><!----></div></div>
<script src="/assets/js/app.5f0854a6.js" defer></script><script src="/assets/js/3.f7f64212.js" defer></script><script src="/assets/js/1.1f6fb7b3.js" defer></script><script src="/assets/js/23.1c07c451.js" defer></script><script src="/assets/js/11.adfbccf0.js" defer></script><script src="/assets/js/9.bb4d4833.js" defer></script>
</body>
</html>