Skip to content

Commit cfd8b8e

Browse files
committed
Site updated: 2017-09-18 13:16:02
1 parent 1ea431d commit cfd8b8e

File tree

6 files changed

+22
-18
lines changed

6 files changed

+22
-18
lines changed

2017/09/09/hello-world/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ <h3 id="Deploy-to-remote-sites"><a href="#Deploy-to-remote-sites" class="headerl
9898

9999
</div>
100100
<footer class="article-footer">
101-
<a data-url="http://yoursite.com/2017/09/09/hello-world/" data-id="cj7pi5c5h0001bwvvk9od46r2" class="article-share-link">Delen</a>
101+
<a data-url="http://yoursite.com/2017/09/09/hello-world/" data-id="cj7ppwhb00004i8vvs1x1t7nk" class="article-share-link">Delen</a>
102102

103103

104104
</footer>

2017/09/12/关于项目控制台无法输出调试信息/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ <h1 class="article-title" itemprop="name">
9696

9797
</div>
9898
<footer class="article-footer">
99-
<a data-url="http://yoursite.com/2017/09/12/关于项目控制台无法输出调试信息/" data-id="cj7pi5c5l0003bwvvy8szoduv" class="article-share-link">Delen</a>
99+
<a data-url="http://yoursite.com/2017/09/12/关于项目控制台无法输出调试信息/" data-id="cj7ppwhau0001i8vvjddzp7d8" class="article-share-link">Delen</a>
100100

101101

102102
</footer>

2017/09/13/StringHttpMessageConverter编码的问题/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ <h1 class="article-title" itemprop="name">
9494

9595
</div>
9696
<footer class="article-footer">
97-
<a data-url="http://yoursite.com/2017/09/13/StringHttpMessageConverter编码的问题/" data-id="cj7pi5c5b0000bwvv8ygvbglu" class="article-share-link">Delen</a>
97+
<a data-url="http://yoursite.com/2017/09/13/StringHttpMessageConverter编码的问题/" data-id="cj7ppwhan0000i8vvr5ysiye2" class="article-share-link">Delen</a>
9898

9999

100100
</footer>

2017/09/14/前台json获取数据为undefined/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ <h1 class="article-title" itemprop="name">
9191

9292
</div>
9393
<footer class="article-footer">
94-
<a data-url="http://yoursite.com/2017/09/14/前台json获取数据为undefined/" data-id="cj7pi5c5k0002bwvvz339xnnl" class="article-share-link">Delen</a>
94+
<a data-url="http://yoursite.com/2017/09/14/前台json获取数据为undefined/" data-id="cj7ppwhaw0002i8vvw7lrrbfn" class="article-share-link">Delen</a>
9595

9696

9797
</footer>

2017/09/17/开发中遇到的数据库更新丢失问题/index.html

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,20 @@
55

66
<title>开发中遇到的数据库更新丢失问题 | Hexo</title>
77
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
8-
<meta name="description" content="前提:什么是数据库更新丢失?举个栗子,假设有如下情况,假设,嗯~ o( ̄▽ ̄)o:  1、小A查询了数据库  2、小B也查询了数据库,两个人不在同一个session中  3、小A修改了数据库中的一行,并提交  4、小B也修改了数据库的一行,但提交晚于小A  这个时候,小B的修改会覆盖小A的修改,就发生了数据库更新丢失的问题 我所知道的解决方案:  1、悲观锁   通过采用sel">
8+
<meta name="description" content="我自己测试的时候发现有更新丢失的现象,还是第一次发现这个问题,研究了一下前提:什么是数据库更新丢失?举个栗子,假设有如下情况:  1、小A查询了数据库  2、小B也查询了数据库,两个人不在同一个session中  3、小A修改了数据库中的一行,并提交  4、小B也修改了数据库的一行,但提交晚于小A  这个时候,小B的修改会覆盖小A的修改,就发生了数据库更新丢失的问题 解决方案:">
99
<meta property="og:type" content="article">
1010
<meta property="og:title" content="开发中遇到的数据库更新丢失问题">
1111
<meta property="og:url" content="http://yoursite.com/2017/09/17/开发中遇到的数据库更新丢失问题/index.html">
1212
<meta property="og:site_name" content="Hexo">
13-
<meta property="og:description" content="前提:什么是数据库更新丢失?举个栗子,假设有如下情况,假设,嗯~ o( ̄▽ ̄)o:  1、小A查询了数据库  2、小B也查询了数据库,两个人不在同一个session中  3、小A修改了数据库中的一行,并提交  4、小B也修改了数据库的一行,但提交晚于小A  这个时候,小B的修改会覆盖小A的修改,就发生了数据库更新丢失的问题 我所知道的解决方案:  1、悲观锁   通过采用sel">
14-
<meta property="og:updated_time" content="2017-09-17T15:27:03.936Z">
13+
<meta property="og:description" content="我自己测试的时候发现有更新丢失的现象,还是第一次发现这个问题,研究了一下前提:什么是数据库更新丢失?举个栗子,假设有如下情况:  1、小A查询了数据库  2、小B也查询了数据库,两个人不在同一个session中  3、小A修改了数据库中的一行,并提交  4、小B也修改了数据库的一行,但提交晚于小A  这个时候,小B的修改会覆盖小A的修改,就发生了数据库更新丢失的问题 解决方案:">
14+
<meta property="og:image" content="http://yoursite.com/2017/09/17/开发中遇到的数据库更新丢失问题/success.png">
15+
<meta property="og:image" content="http://yoursite.com/2017/09/17/开发中遇到的数据库更新丢失问题/errorupdate.png">
16+
<meta property="og:image" content="http://yoursite.com/2017/09/17/开发中遇到的数据库更新丢失问题/updateoptm.png">
17+
<meta property="og:updated_time" content="2017-09-18T05:15:45.392Z">
1518
<meta name="twitter:card" content="summary">
1619
<meta name="twitter:title" content="开发中遇到的数据库更新丢失问题">
17-
<meta name="twitter:description" content="前提:什么是数据库更新丢失?举个栗子,假设有如下情况,假设,嗯~ o( ̄▽ ̄)o:  1、小A查询了数据库  2、小B也查询了数据库,两个人不在同一个session中  3、小A修改了数据库中的一行,并提交  4、小B也修改了数据库的一行,但提交晚于小A  这个时候,小B的修改会覆盖小A的修改,就发生了数据库更新丢失的问题 我所知道的解决方案:  1、悲观锁   通过采用sel">
20+
<meta name="twitter:description" content="我自己测试的时候发现有更新丢失的现象,还是第一次发现这个问题,研究了一下前提:什么是数据库更新丢失?举个栗子,假设有如下情况:  1、小A查询了数据库  2、小B也查询了数据库,两个人不在同一个session中  3、小A修改了数据库中的一行,并提交  4、小B也修改了数据库的一行,但提交晚于小A  这个时候,小B的修改会覆盖小A的修改,就发生了数据库更新丢失的问题 解决方案:">
21+
<meta name="twitter:image" content="http://yoursite.com/2017/09/17/开发中遇到的数据库更新丢失问题/success.png">
1822

1923
<link rel="alternate" href="/atom.xml" title="Hexo" type="application/atom+xml">
2024

@@ -85,13 +89,13 @@ <h1 class="article-title" itemprop="name">
8589

8690
<div class="article-entry" itemprop="articleBody">
8791

88-
<p>前提:什么是数据库更新丢失?<br><br>举个栗子,假设有如下情况,假设,嗯~ o(<em> ̄▽ ̄</em>)o<br><br>  1、小A查询了数据库<br><br>  2、小B也查询了数据库,两个人不在同一个session中<br><br>  3、小A修改了数据库中的一行,并提交<br><br>  4、小B也修改了数据库的一行,但提交晚于小A<br><br>  这个时候,小B的修改会覆盖小A的修改,就发生了数据库更新丢失的问题<br></p>
89-
<p> 我所知道的解决方案<br><br>  1、悲观锁<br><br>   通过采用select for update或者select for update nowait,<br><br>  2、乐观锁</p>
92+
<p>我自己测试的时候发现有更新丢失的现象,还是第一次发现这个问题,研究了一下<br><br>前提:什么是数据库更新丢失?<br><br>举个栗子,假设有如下情况:<br><br>  1、小A查询了数据库<br><br>  2、小B也查询了数据库,两个人不在同一个session中<br><br>  3、小A修改了数据库中的一行,并提交<br><br>  4、小B也修改了数据库的一行,但提交晚于小A<br><br>  这个时候,小B的修改会覆盖小A的修改,就发生了数据库更新丢失的问题<br></p>
93+
<p> 解决方案<br><br>  1、悲观锁<br><br>   通过采用select for update或者select for update nowait,<br><br>   逻辑是:<br><br>   小A先查<br>   <br><br>   <img src="success.png" alt=""><br>    小B后查<br>   <img src="errorupdate.png" alt=" "><br> 小B的查询会锁住,在页面的表现应该就是阻塞,什么数据也没有。<br><br><br>  2、乐观锁<br><br>    采用在数据库中表中加版本号和时间戳的形式进行加锁,项目中采用的是时间戳的形式,因为个别表中有这个字段:op_tm–操作时间。<br><br>   逻辑是:<br><br>    在update的时候,比较旧的时间戳,因为所有更新都会更新时间戳,那么最后一次更新也就是步骤四中的时间戳还是旧的时间戳,但已经被步骤三的替代了,所以步骤四的更新会失败。步骤三的更新得以保存,步骤四的“丢失”。步骤四的“丢失”算不算更新丢失,不算,因为是建立在错误数据的更新。<br><br> <img src="updateoptm.png" alt="    "></p>
9094

9195

9296
</div>
9397
<footer class="article-footer">
94-
<a data-url="http://yoursite.com/2017/09/17/开发中遇到的数据库更新丢失问题/" data-id="cj7pi5c5m0004bwvvnxxds7az" class="article-share-link">Delen</a>
98+
<a data-url="http://yoursite.com/2017/09/17/开发中遇到的数据库更新丢失问题/" data-id="cj7ppwhay0003i8vvvt58n32h" class="article-share-link">Delen</a>
9599

96100

97101
</footer>

index.html

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -83,13 +83,13 @@ <h1 itemprop="name">
8383

8484
<div class="article-entry" itemprop="articleBody">
8585

86-
<p>前提:什么是数据库更新丢失?<br><br>举个栗子,假设有如下情况,假设,嗯~ o(<em> ̄▽ ̄</em>)o<br><br>  1、小A查询了数据库<br><br>  2、小B也查询了数据库,两个人不在同一个session中<br><br>  3、小A修改了数据库中的一行,并提交<br><br>  4、小B也修改了数据库的一行,但提交晚于小A<br><br>  这个时候,小B的修改会覆盖小A的修改,就发生了数据库更新丢失的问题<br></p>
87-
<p> 我所知道的解决方案<br><br>  1、悲观锁<br><br>   通过采用select for update或者select for update nowait,<br><br>  2、乐观锁</p>
86+
<p>我自己测试的时候发现有更新丢失的现象,还是第一次发现这个问题,研究了一下<br><br>前提:什么是数据库更新丢失?<br><br>举个栗子,假设有如下情况:<br><br>  1、小A查询了数据库<br><br>  2、小B也查询了数据库,两个人不在同一个session中<br><br>  3、小A修改了数据库中的一行,并提交<br><br>  4、小B也修改了数据库的一行,但提交晚于小A<br><br>  这个时候,小B的修改会覆盖小A的修改,就发生了数据库更新丢失的问题<br></p>
87+
<p> 解决方案<br><br>  1、悲观锁<br><br>   通过采用select for update或者select for update nowait,<br><br>   逻辑是:<br><br>   小A先查<br>   <br><br>   <img src="success.png" alt=""><br>    小B后查<br>   <img src="errorupdate.png" alt=" "><br> 小B的查询会锁住,在页面的表现应该就是阻塞,什么数据也没有。<br><br><br>  2、乐观锁<br><br>    采用在数据库中表中加版本号和时间戳的形式进行加锁,项目中采用的是时间戳的形式,因为个别表中有这个字段:op_tm–操作时间。<br><br>   逻辑是:<br><br>    在update的时候,比较旧的时间戳,因为所有更新都会更新时间戳,那么最后一次更新也就是步骤四中的时间戳还是旧的时间戳,但已经被步骤三的替代了,所以步骤四的更新会失败。步骤三的更新得以保存,步骤四的“丢失”。步骤四的“丢失”算不算更新丢失,不算,因为是建立在错误数据的更新。<br><br> <img src="updateoptm.png" alt="    "></p>
8888

8989

9090
</div>
9191
<footer class="article-footer">
92-
<a data-url="http://yoursite.com/2017/09/17/开发中遇到的数据库更新丢失问题/" data-id="cj7pi5c5m0004bwvvnxxds7az" class="article-share-link">Delen</a>
92+
<a data-url="http://yoursite.com/2017/09/17/开发中遇到的数据库更新丢失问题/" data-id="cj7ppwhay0003i8vvvt58n32h" class="article-share-link">Delen</a>
9393

9494

9595
</footer>
@@ -127,7 +127,7 @@ <h1 itemprop="name">
127127

128128
</div>
129129
<footer class="article-footer">
130-
<a data-url="http://yoursite.com/2017/09/14/前台json获取数据为undefined/" data-id="cj7pi5c5k0002bwvvz339xnnl" class="article-share-link">Delen</a>
130+
<a data-url="http://yoursite.com/2017/09/14/前台json获取数据为undefined/" data-id="cj7ppwhaw0002i8vvw7lrrbfn" class="article-share-link">Delen</a>
131131

132132

133133
</footer>
@@ -165,7 +165,7 @@ <h1 itemprop="name">
165165

166166
</div>
167167
<footer class="article-footer">
168-
<a data-url="http://yoursite.com/2017/09/13/StringHttpMessageConverter编码的问题/" data-id="cj7pi5c5b0000bwvv8ygvbglu" class="article-share-link">Delen</a>
168+
<a data-url="http://yoursite.com/2017/09/13/StringHttpMessageConverter编码的问题/" data-id="cj7ppwhan0000i8vvr5ysiye2" class="article-share-link">Delen</a>
169169

170170

171171
</footer>
@@ -208,7 +208,7 @@ <h1 itemprop="name">
208208

209209
</div>
210210
<footer class="article-footer">
211-
<a data-url="http://yoursite.com/2017/09/12/关于项目控制台无法输出调试信息/" data-id="cj7pi5c5l0003bwvvy8szoduv" class="article-share-link">Delen</a>
211+
<a data-url="http://yoursite.com/2017/09/12/关于项目控制台无法输出调试信息/" data-id="cj7ppwhau0001i8vvjddzp7d8" class="article-share-link">Delen</a>
212212

213213

214214
</footer>
@@ -253,7 +253,7 @@ <h3 id="Deploy-to-remote-sites"><a href="#Deploy-to-remote-sites" class="headerl
253253

254254
</div>
255255
<footer class="article-footer">
256-
<a data-url="http://yoursite.com/2017/09/09/hello-world/" data-id="cj7pi5c5h0001bwvvk9od46r2" class="article-share-link">Delen</a>
256+
<a data-url="http://yoursite.com/2017/09/09/hello-world/" data-id="cj7ppwhb00004i8vvs1x1t7nk" class="article-share-link">Delen</a>
257257

258258

259259
</footer>

0 commit comments

Comments
 (0)