文档章节

数据库设计の读写分离

卢磊磊
 卢磊磊
发布于 2017/05/18 18:37
字数 422
阅读 25
收藏 0

在操作数据库的时候,一定离不开事务,数据库设置成读写分离,有一点需要特别注意,就是在一个事务中,如果读一个对象,待该对象的锁没有被释放前,再进行写的操作,就会报错。

锁的概念:共享锁(s锁)排他锁(x锁)

共享锁(s锁)

又称为读锁,事务T对数据对象加上s锁,则事务T可以读A但是不能修改A,其他事务只能再对A加s锁而不能加x锁,直到T释放A上的s锁。这保证了其他事务在可以读A,但在T释放A上的s锁之前不能对A进行任何修改。

排他锁(x锁)

又称写锁,事务T对数据对象加上X锁,事务T可以读A也可以修改A,其他事务不能再对A加任何锁,直到T释放A上的锁。这保证了其他事务在事务T释放A上的锁之前不能再读取和修改A。

项目中遇到的错误就在这里,去数据库中查询某个对象,如果存在就更新,否则插入新的数据。这个时候,如果这个对象存在,那么,这个对象就没有办法再进行其他的操作了,如果想要更新数据库中的这条数据,需要重新创建一个新的对象,使用hibernate中的saveOrupdate方法就可以更新数据。

网上搜索的解释,感觉这篇写的很好,很好的解释了这个问题。

http://zliguo.iteye.com/blog/2256160

 

 

 

© 著作权归作者所有

卢磊磊
粉丝 0
博文 94
码字总数 16037
作品 0
昌平
程序员
私信 提问
火影忍者番外篇-Eova隐藏技能

用通俗的语言,娱乐的心态,茶余饭后的时间,来掌握晦涩的技术,Eova不仅要开发So Easy,还要学习So Easy! 希望《火影忍者番外篇-Eova隐藏技能》系列博文能为Eova用户,拨开迷雾! 卡卡西:...

Jieven
2016/01/27
2.4K
10
《高性能MySQL》の复制

---title: 《高性能MySQL》の复制date: 2016-04-26 19:19:20categories: 计算机科学tags: 关系型数据库 MySQL --- 0x00前言 本书讲述到定稿前的MySQL5.5版,所以下面内容的适用范围止步于MyS...

JoshuaShaw
2016/04/26
103
0
浅谈高性能数据库集群——分库分表

最近学习了阿里资深技术专家李运华的架构设计关于分库分表的教程,颇有收获,总结一下。 本文主要介绍高性能数据库集群分库分表相关理论,基本架构,涉及的复杂度问题以及常见解决方案。 分库...

caison
2018/07/02
0
0
数据库分库分表、读写分离的原理和实现,以及使用场景

为什么要分库分表和读写分离? 类似淘宝网这样的网站,海量数据的存储和访问成为了系统设计的瓶颈问题,日益增长的业务数据,无疑对数据库造成了相当大的负载,同时对于系统的稳定性和扩展性...

游人未归
2018/09/14
0
0
和某游戏猎头的对话

HI。 游戏猎头徐磊 16:00:34 请教你一个问题。。现在方便不? 午后の咖啡 16:00:45 在 游戏猎头徐磊 16:01:07 研发 高级软件工程师 项目描述:3D模拟经营网络游戏人生OL 开发工具:VS2005, F...

付翔
2010/04/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

一文读懂深度学习:从神经元到BERT

阿里妹导读:自然语言处理领域的殿堂标志 BERT 并非横空出世,背后有它的发展原理。今天,蚂蚁金服财富对话算法团队整理对比了深度学习模型在自然语言处理领域的发展历程。从简易的神经元到当...

阿里云云栖社区
26分钟前
7
0
诊断修复 TiDB Operator 在 K8s 测试中遇到的 Linux 内核问题

作者:张文博 Kubernetes(K8s)是一个开源容器编排系统,可自动执行应用程序部署、扩展和管理。它是云原生世界的操作系统。 K8s 或操作系统中的任何缺陷都可能使用户进程存在风险。作为 Pi...

TiDB
35分钟前
6
0
分享一个vue项目“脚手架”项目的实现步骤

搭建缘由 源于公司每次新启动一个由多人协同开发的项目都由负责人初始化项目之后,每个人再去从私服pull一下项目才开始开发。但是每次初始化工程都是一步步的造轮子,一个个依赖去安装,新建...

开元中国2015
今天
6
0
Odoo 自定义Widgets 基础教程(章节2)

大家好, 本文将进一步解释odoo widget 的相关原理,其中首先会讲述:1. 什么是widgets 中的继承;2. 为什么有很多 init : function 语法;3. widgets 系统结构; 首先,让我们来看看结构:(...

openerp
今天
7
0
我的Linux常用软件

我的Linux常用软件 本帖记录我在Linux下常用的软件,系统是Deepin Linux, 以备查询用, 不定期更新。 Sougou Pinyin 这个不用多说, 装系统第一个要找输入法。 TeamViewer Linux有时候需要远...

Frank1126lin
今天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部