数据访问层
来源:互联网 发布:苹果赚钱软件哪个好 编辑:程序博客网 时间:2024/06/05 16:08
给数据库减压:1:优化应用,看是否有不必要的压力;2:看有没有办法降低数据库压力,如缓存,搜索引擎等;3:将数据库的数据和访问分到多台数据库上,分开支持。
数据拆分有俩种方式:垂直拆分和水平拆分
垂直拆分带来的影响:
单机的ACID被打破了,要么放弃原来的事务,要么引入分布式事务;
Join操作变的比较困难
靠外键约束的场景会收影响
水平拆分带来的影响:
ACID问题;
Join问题;
外键问题;
生成唯一ID会受影响
针对单个逻辑意义上的表的查询要跨库;
分布式事务:
分布式事务模型:X/OpenDTP模型,定义了三个组件AM,RM,TM
AP与RM之间可以利用RM自身提供的native API进行通信,这种方式不使用事务,当要使用事务的时候,AP需要的到对RM的连接,此连接由TM进行管理,然后使用XA的native API进行交互。
AP与TM之间使用TX接口,用于对事务进行控制,包括启动事务,提交事务,回滚事务等。
TM与RM之间通过XA接口交互,TM管理到RM的连接,并实现俩阶段提交。
2阶段提交:提交之前增加了准备阶段,只有TM控制RM在准备阶段都成功,才会在第二阶段进行提交操作,只要有一个失败,则进行回滚操作。
CAP理论:
一致性:所有节点在同一时间读到同样的数据,
可用性:每个请求都能收到一个响应,
分区容忍性:即使系统有部分问题,但系统仍然能够继续运行。
多机的Sequence问题:
把所有ID集中放在一个地方进行管理。每台机器使用ID时都从这个ID生成器上取。
跨库join问题:在应用层把原来的Join操作分为多次数据库操作;
数据冗余;
借助外部系统(如搜索引擎)解决一些跨库问题。
- 收藏:数据访问层
- 数据访问层DataAccess
- 数据访问层学习
- C#数据访问层
- 数据访问层
- 数据访问层!
- 数据访问层
- C# 数据访问层
- 创建数据访问层
- 数据访问层
- 数据访问层sqlhelper
- 中间件-数据访问层
- 数据访问层
- 【JAVA】数据访问层
- 数据访问层
- 数据访问层
- 数据访问层
- 数据访问层
- android常用的必备基础知识
- SQL两表之间:根据一个表的字段更新另一个表的字段
- BAT脚本
- const指针
- (8)分数求和
- 数据访问层
- 基于jquery的轮播图组件开发-1
- Python -- Numpy中ndarray的属性和方法
- HTML5的time标签
- STM32系统滴答_及不可不知的延时技巧
- String的常用方法与将金额转换成大写
- Android 绕Y轴翻转
- PAT乙级真题及训练集(24)--1031. 查验身份证(15)(小感触)
- Python股票处理之四_股票筛选