数据库sharding
- - 数据库 - ITeye博客当团队决定自行实现sharding的时候,DAO层可能是嵌入sharding逻辑的首选位置,因为在这个层面上,每一个DAO的方法都明确地知道需要访问的数据表以及查询参数,借助这些信息可以直接定位到目标shard上,而不必像框架那样需要对SQL进行解析然后再依据配置的规则进行路由. 另一个优势是不会受ORM框架的制约.
事务具备4个特性:原子性(Atomicity),一致性(Consistency),隔离性(Isolation)和持续性(Durability)。
这4个特性也简称为ACID性。
(1)原子性:事务是能够用中最小执行单位,具有不可再分性。
(2)一致性:事务执行的结果,必须使数据库从一个一致性状态,变到另一个一致性状态。
例如银行两个账户A,B之间转账,A向B转账1000元,A账户先减少1000元,B账户再总加1000元,
如果全部执行成功,数据库就处于一致性状态。
(3)隔离性:各个事务的执行互不干扰,并发执行的事务之间互不影响。
(4)持续性:也称持久性,事务一旦提交,对事务所做的任何改变都会记录到数据库中。
javaEE的事务一般分为
(1)局部事务(local Transaction Processing),一般只涉及单一数据库。
(2)全局事务(distributed Transaction Processing,DTP),