【同步并发】入门小结
2016-07-10 22:04
295 查看
脏数据:可以理解为临时值。当事务A更新了数据,但是还未提交时事务B进行了读取。当事务A出问题进行回滚回原值,那么事务B已经读取的就是一个脏数据。
不可重复读:理解为在同一事务内的两次相同查询返回不同的值。导致原因是这两次查询中间被另一个事务修改了数据。重点修改。
幻读:当事务不是独立执行时发生的现象。当事务A对表中所有数据进行了修改或读取。同时事务B在表中插入数据。那么会在事务A后感觉还有数据没有被修改或读取到的幻觉。重点新增或删除。
解决:设置隔离级别。
数据层面的锁:悲观锁+乐观锁
悲观锁:sql+for update。锁定了所有符合条件的语句。
乐观锁:添加version标志,操作时比较version,成功后更新version。
数据库拆分:水平拆分+垂直拆分
水平拆分:表结构还是相同的,但是数量减少了,比如500w的表平均拆分10张的话,每张表就只有50w。拆分方式:顺序,hash取模,建立映射关系。
垂直拆分:将表结构拆分。如将一个10个字段的表拆成两张5个字段的表。
读写分离
缓存
负载均衡
不可重复读:理解为在同一事务内的两次相同查询返回不同的值。导致原因是这两次查询中间被另一个事务修改了数据。重点修改。
幻读:当事务不是独立执行时发生的现象。当事务A对表中所有数据进行了修改或读取。同时事务B在表中插入数据。那么会在事务A后感觉还有数据没有被修改或读取到的幻觉。重点新增或删除。
解决:设置隔离级别。
数据层面的锁:悲观锁+乐观锁
悲观锁:sql+for update。锁定了所有符合条件的语句。
乐观锁:添加version标志,操作时比较version,成功后更新version。
数据库拆分:水平拆分+垂直拆分
水平拆分:表结构还是相同的,但是数量减少了,比如500w的表平均拆分10张的话,每张表就只有50w。拆分方式:顺序,hash取模,建立映射关系。
垂直拆分:将表结构拆分。如将一个10个字段的表拆成两张5个字段的表。
读写分离
缓存
负载均衡
相关文章推荐
- 平衡二叉树
- HDU1907 John
- 三十岁仍一事无成,一个失败工程师的自白
- TOJ 1945.Perfect Cubes
- [Leetcode]36. Valid Sudoku
- JAVA设计模式(02):创建型-抽象工厂模式(Abstract Factory)
- 准备食物(trie) 题解+代码
- 《leetCode》:Contains Duplicate III
- java代理机制
- 点击按钮打开多个窗口
- 【zTree】简单实例与异步加载实例
- 对象和对象引用
- js翻书功能
- java非数据库自增的主键
- SDP协议解析
- 从计算机视觉角度深入解读了AR
- iOS -TextField控件属性、代理详解
- android基础——各个文件夹存放的文件类型
- CSS3 transform3D 图片翻转效果
- 初识马尔可夫和马尔可夫链