![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库篇
freewyy
这个作者很懒,什么都没留下…
展开
-
数据库分库分表(sharding)系列(四) 多数据源的事务处理
分布式事务这是最为人们所熟知的多数据源事务处理机制。本文并不打算对分布式事务做过多介绍,读者可参考此文:关于分布式事务、两阶段提交、一阶段提交、Best Efforts 1PC模式和事务补偿机制的研究 。在这里只想对分布式事务的利弊作一下分析。优势:1. 基于两阶段提交,最大限度地保证了跨数据库操作的“原子性”,是分布式系统下最严格的事务实现方式。2. 实现简单,工作量转载 2016-10-12 13:51:50 · 368 阅读 · 0 评论 -
数据库分库分表(sharding)系列(三) 关于使用框架还是自主开发以及sharding实现层面的考量
一、sharding逻辑的实现层面 从一个系统的程序架构层面来看,sharding逻辑可以在DAO层、JDBC API层、介于DAO与JDBC之间的Spring数据访问封装层(各种spring的template)以及介于应用服务器与数据库之间的sharding代理服务器四个层面上实现。 图1. Sharding实现层面与相关框架/产品在DAO层实转载 2016-10-12 11:50:24 · 725 阅读 · 0 评论 -
数据库分库分表(sharding)系列(二) 全局主键生成策略
第一部分:一些常见的主键生成策略一旦数据库被切分到多个物理结点上,我们将不能再依赖数据库自身的主键生成机制。一方面,某个分区数据库自生成的ID无法保证在全局上是唯一的;另一方面,应用程序在插入数据之前需要先获得ID,以便进行SQL路由。目前几种可行的主键生成策略有:1. UUID:使用UUID作主键是最简单的方案,但是缺点也是非常明显的。由于UUID非常的长,除占用大量存储转载 2016-10-12 11:34:28 · 416 阅读 · 0 评论 -
数据库分库分表(sharding)系列(一) 拆分实施策略和示例演示
本文原文连接: http://blog.csdn.net/bluishglc/article/details/7696085第一部分:实施策略 图1.数据库分库分表(sharding)实施策略图解(点击查看大图)1.准备阶段对数据库进行分库分表(Sharding化)前,需要开发人员充分了解系统业务逻辑和数据库schema.一个好的建转载 2016-10-12 11:24:11 · 278 阅读 · 0 评论 -
SQL中on和where条件的区别
数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。 在使用left jion时,on和where条件的区别如下:1、 on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录转载 2008-10-12 21:35:00 · 355 阅读 · 0 评论 -
Oracle PL/SQL函数大全(3)
44.HEXTORAW将一个十六进制构成的字符串转换为二进制45.RAWTOHEXT将一个二进制构成的字符串转换为十六进制46.ROWIDTOCHAR将ROWID数据类型转换为字符类型 47.TO_CHAR(date,format)SQL> select to_char(sysdate,yyyy/mm/dd hh24:mi:ss) from转载 2008-10-12 22:25:00 · 339 阅读 · 0 评论 -
oracle pl/SQL函数大全(1)
SQL中的单记录函数1.ASCII返回与指定的字符对应的十进制数;SQL> select ascii(A) A,ascii(a) a,ascii(0) zero,ascii( ) space from dual;A A ZERO SPACE--------- --------- --------- ---------65转载 2008-10-12 22:20:00 · 343 阅读 · 0 评论 -
outer和left outer join有什么区别?
使用关系代数合并数据1 关系代数合并数据集合的理论基础是关系代数,它是由E.F.Codd于1970年提出的。在关系代数的形式化语言中: 用表、或者数据集合表示关系或者实体。 用行表示元组。 用列表示属性。关系代数包含以下8个关系运算符 选取――返回满足指定条件的行。 投影――从数据集转载 2008-10-12 21:23:00 · 307 阅读 · 0 评论 -
Oracle pl/SQL 函数大全(2)
22.EXP返回一个数字e的n次方根SQL> select exp(2),exp(1) from dual;EXP(2) EXP(1)--------- ---------7.3890561 2.718281823.FLOOR对给定的数字取整数SQL> select floor(2345.67) from dual; FLOOR(2345.67转载 2008-10-12 22:24:00 · 586 阅读 · 0 评论 -
如何在SQL Server数据库中加密数据
为了防止某些别有用心的人从外部访问数据库,盗取数据库中的用户姓名、密码、信用卡号等其他重要信息,在我们创建数据库驱动的解决方案时,我们首先需要考虑的的第一条设计决策就是如何加密存储数据,以此来保证它的安全,免受被他人窥测。 SQL Server中有哪一种支持可以用于加密对象和数据?从一开始就讨论一下SQL Server欠缺什么是明智的,或者是对于SQL Server中的加密部分你不应转载 2008-09-26 23:48:00 · 460 阅读 · 0 评论 -
删除数据库中重复数据的方法
数据库的使用过程中由于程序方面的问题有时候会碰到重复数据,重复数据导致了数据库部分设置不能正确设置…… 方法一 declare @max integer,@id integer declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) > 1 open cur_rows fe原创 2008-09-26 23:05:00 · 345 阅读 · 0 评论 -
SQL Server 2008 的 Transact-SQL 语言增强(2)
6.MERGE 语句在 SQL Server 2008 中,可以使用 MERGE 语句在一条语句中根据与源表联接的结果对目标表执行 INSERT、UPDATE 或 DELETE 操作。如:使用一个语句有条件地在单个目标表中插入或更新行,如果目标表中存在相应行,则更新一个或多个列;否则,会将数据插入新行。使用该语句还可以同步两个表,根据与源数据的差别在目标表中插入、更新或删除行。MERGE 语法包括转载 2008-09-26 13:53:00 · 284 阅读 · 0 评论 -
"此数据库没有有效所有者,因此无法安装数据库关系图支持对象"的解决方法
sql2000备份的数据库还原到sql2005后,选择“数据库关系图”提示:此数据库没有有效所有者,因此无法安装数据库关系图支持对象。若要继续,请首先使用“数据库属性”对话框的“文件”页或 ALTER AUTHORIZATION 语句将数据库所有者设置为有效登录名,然后再添加数据库关系图支持对象。解决方法如下: 1、设置兼容级别为90(2005为90) USE [mas转载 2008-09-26 23:31:00 · 505 阅读 · 0 评论 -
Oracle与SQL Server选型时三个小差异
甲骨文与微软两大数据库产品,是数据库发展史上的两座大山。这让我们在数据库选型的时候,基本上没有多大的选择余地,不是微软就是甲骨文。但是,从他们两者来说,还是有比较大的差异。今天笔者就谈谈在数据库选型的时候,不得不关注的他们之间的三个小差异。了解这些区别,能够给我们数据库选型带来很大的指导作用。 一、 所支持平台的差异。 甲骨文的数据库系统,是在JAVA平台上开发起来的,所以,保持着众多JAV转载 2008-09-26 22:58:00 · 359 阅读 · 0 评论 -
SQL Server 2008 的 Transact-SQL 语言增强
Microsoft SQL Server 2008 对 Transact-SQL 语言进行了进一步增强,主要包括:ALTER DATABASE 兼容级别设置、复合运算符、CONVERT 函数、日期和时间功能、GROUPING SETS、MERGE 语句、SQL 依赖关系报告、表值参数和 Transact-SQL 行构造函数。1.ALTER DATABASE 兼容级别设置某些数据库行为与 SQL S转载 2008-09-26 13:50:00 · 375 阅读 · 0 评论 -
关于ODS
ODS是一个面向主题的、集成的、可变的、当前的细节数据集合,用于支持企业对于即时性的、操作性的、集成的全体信息的需求。常常被作为数据仓库的过渡,也是数据仓库项目的可选项之一。 根据Bill.Inmon的定义,“数据仓库是面向主题的、集成的、稳定的、随时间变化的,主要用于决策支持的数据库系统” ODS是一个面向主题的、集成的、可变的、当前的细节数据集合,用于支持企业对于即时性转载 2008-09-06 21:01:00 · 810 阅读 · 0 评论 -
数据库分库分表(sharding)系列(五) 一种支持自由规划无须数据迁移和修改路由代码的Sharding扩容方案
Sharding扩容——系统维护不能承受之重 任何Sharding系统,在上线运行一段时间后,数据就会积累到当前节点规模所能承载的上限,此时就需要对数据库进行扩容了,也就是增加新的物理结点来分摊数据。如果系统使用的是基于ID进行散列的路由方式,那么团队需要根据新的节点规模重新计算所有数据应处的目标Shard,并将其迁移过去,这对团队来说无疑是一个巨大的维护负担;而如果系统是按增量区原创 2016-10-12 14:01:05 · 434 阅读 · 0 评论