<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[freewyy的专栏]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/freewyy</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; freewyy]]></copyright><item><title><![CDATA[数据库分库分表(sharding)系列(五) 一种支持自由规划无须数据迁移和修改路由代码的Sharding扩容方案]]></title><link>https://blog.csdn.net/freewyy/article/details/52796671</link><guid>https://blog.csdn.net/freewyy/article/details/52796671</guid><author>freewyy</author><pubDate>Wed, 12 Oct 2016 14:01:05 +0800</pubDate><description><![CDATA[Sharding扩容——系统维护不能承受之重

 

任何Sharding系统，在上线运行一段时间后，数据就会积累到当前节点规模所能承载的上限，此时就需要对数据库进行扩容了，也就是增加新的物理结点来分摊数据。如果系统使用的是基于ID进行散列的路由方式，那么团队需要根据新的节点规模重新计算所有数据应处的目标Shard，并将其迁移过去，这对团队来说无疑是一个巨大的维护负担；而如果系统是按增量区]]></description><category></category></item><item><title><![CDATA[数据库分库分表(sharding)系列(四) 多数据源的事务处理]]></title><link>https://blog.csdn.net/freewyy/article/details/52796526</link><guid>https://blog.csdn.net/freewyy/article/details/52796526</guid><author>freewyy</author><pubDate>Wed, 12 Oct 2016 13:51:50 +0800</pubDate><description><![CDATA[分布式事务

这是最为人们所熟知的多数据源事务处理机制。本文并不打算对分布式事务做过多介绍，读者可参考此文：关于分布式事务、两阶段提交、一阶段提交、Best Efforts 1PC模式和事务补偿机制的研究 。在这里只想对分布式事务的利弊作一下分析。

优势：

1. 基于两阶段提交，最大限度地保证了跨数据库操作的“原子性”，是分布式系统下最严格的事务实现方式。
2. 实现简单，工作量]]></description><category></category></item><item><title><![CDATA[数据库分库分表(sharding)系列(三) 关于使用框架还是自主开发以及sharding实现层面的考量]]></title><link>https://blog.csdn.net/freewyy/article/details/52795798</link><guid>https://blog.csdn.net/freewyy/article/details/52795798</guid><author>freewyy</author><pubDate>Wed, 12 Oct 2016 11:50:24 +0800</pubDate><description><![CDATA[一、sharding逻辑的实现层面

 

从一个系统的程序架构层面来看，sharding逻辑可以在DAO层、JDBC API层、介于DAO与JDBC之间的Spring数据访问封装层(各种spring的template)以及介于应用服务器与数据库之间的sharding代理服务器四个层面上实现。

 



图1. Sharding实现层面与相关框架/产品


在DAO层实]]></description><category></category></item><item><title><![CDATA[数据库分库分表(sharding)系列(二) 全局主键生成策略]]></title><link>https://blog.csdn.net/freewyy/article/details/52795652</link><guid>https://blog.csdn.net/freewyy/article/details/52795652</guid><author>freewyy</author><pubDate>Wed, 12 Oct 2016 11:34:28 +0800</pubDate><description><![CDATA[第一部分：一些常见的主键生成策略




一旦数据库被切分到多个物理结点上，我们将不能再依赖数据库自身的主键生成机制。一方面，某个分区数据库自生成的ID无法保证在全局上是唯一的；另一方面，应用程序在插入数据之前需要先获得ID,以便进行SQL路由。目前几种可行的主键生成策略有：
1. UUID：使用UUID作主键是最简单的方案，但是缺点也是非常明显的。由于UUID非常的长，除占用大量存储]]></description><category></category></item><item><title><![CDATA[数据库分库分表(sharding)系列(一) 拆分实施策略和示例演示]]></title><link>https://blog.csdn.net/freewyy/article/details/52795536</link><guid>https://blog.csdn.net/freewyy/article/details/52795536</guid><author>freewyy</author><pubDate>Wed, 12 Oct 2016 11:24:11 +0800</pubDate><description><![CDATA[本文原文连接: http://blog.csdn.net/bluishglc/article/details/7696085


第一部分：实施策略

 



 

图1.数据库分库分表(sharding)实施策略图解(点击查看大图)


1.准备阶段

对数据库进行分库分表(Sharding化)前，需要开发人员充分了解系统业务逻辑和数据库schema.一个好的建]]></description><category></category></item><item><title><![CDATA[Oracle pl/SQL函数大全（4）]]></title><link>https://blog.csdn.net/freewyy/article/details/3066031</link><guid>https://blog.csdn.net/freewyy/article/details/3066031</guid><author>freewyy</author><pubDate>Sun, 12 Oct 2008 22:37:00 +0800</pubDate><description><![CDATA[    62.MIN(DISTINCT|ALL)求最小值,ALL表示对所有的值求最小值,DISTINCT表示对不同的值求最小值,相同的只取一次SQL> select min(all sal) from gao.table3;MIN(ALLSAL)-----------    1111.1163.STDDEV(distinct|all)求标准差,ALL表示对所有的值求]]></description><category></category></item><item><title><![CDATA[Oracle PL/SQL函数大全（3）]]></title><link>https://blog.csdn.net/freewyy/article/details/3065997</link><guid>https://blog.csdn.net/freewyy/article/details/3065997</guid><author>freewyy</author><pubDate>Sun, 12 Oct 2008 22:25:00 +0800</pubDate><description><![CDATA[     44.HEXTORAW将一个十六进制构成的字符串转换为二进制45.RAWTOHEXT将一个二进制构成的字符串转换为十六进制46.ROWIDTOCHAR将ROWID数据类型转换为字符类型 47.TO_CHAR(date,format)SQL> select to_char(sysdate,yyyy/mm/dd hh24:mi:ss) from]]></description><category></category></item><item><title><![CDATA[Oracle pl/SQL 函数大全（2）]]></title><link>https://blog.csdn.net/freewyy/article/details/3065990</link><guid>https://blog.csdn.net/freewyy/article/details/3065990</guid><author>freewyy</author><pubDate>Sun, 12 Oct 2008 22:24:00 +0800</pubDate><description><![CDATA[    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]]></description><category></category></item><item><title><![CDATA[oracle pl/SQL函数大全（1）]]></title><link>https://blog.csdn.net/freewyy/article/details/3065980</link><guid>https://blog.csdn.net/freewyy/article/details/3065980</guid><author>freewyy</author><pubDate>Sun, 12 Oct 2008 22:20:00 +0800</pubDate><description><![CDATA[SQL中的单记录函数1.ASCII返回与指定的字符对应的十进制数;SQL> select ascii(A) A,ascii(a) a,ascii(0) zero,ascii( ) space from dual;A         A      ZERO     SPACE--------- --------- --------- ---------65  ]]></description><category></category></item><item><title><![CDATA[SQL中on和where条件的区别]]></title><link>https://blog.csdn.net/freewyy/article/details/3065643</link><guid>https://blog.csdn.net/freewyy/article/details/3065643</guid><author>freewyy</author><pubDate>Sun, 12 Oct 2008 21:35:00 +0800</pubDate><description><![CDATA[  数据库在通过连接两张或多张表来返回记录时，都会生成一张中间的临时表，然后再将这张临时表返回给用户。     在使用left jion时，on和where条件的区别如下：1、 on条件是在生成临时表时使用的条件，它不管on中的条件是否为真，都会返回左边表中的记录。2、where条件是在临时表生成好后，再对临时表进行过滤的条件。这时已经没有left join的含义（必须返回左边表的记录]]></description><category></category></item><item><title><![CDATA[outer和left outer join有什么区别?]]></title><link>https://blog.csdn.net/freewyy/article/details/3065590</link><guid>https://blog.csdn.net/freewyy/article/details/3065590</guid><author>freewyy</author><pubDate>Sun, 12 Oct 2008 21:23:00 +0800</pubDate><description><![CDATA[使用关系代数合并数据1 关系代数合并数据集合的理论基础是关系代数，它是由E.F.Codd于1970年提出的。在关系代数的形式化语言中：        用表、或者数据集合表示关系或者实体。        用行表示元组。        用列表示属性。关系代数包含以下8个关系运算符        选取――返回满足指定条件的行。        投影――从数据集]]></description><category></category></item><item><title><![CDATA[ASP.NET AJAX中的异步Web Services调用]]></title><link>https://blog.csdn.net/freewyy/article/details/2985422</link><guid>https://blog.csdn.net/freewyy/article/details/2985422</guid><author>freewyy</author><pubDate>Fri, 26 Sep 2008 23:54:00 +0800</pubDate><description><![CDATA[     在ASP.NET AJAX当中，除了通过UpdatePanel机制来建立具有AJAX功能的Web应用程序外，其实传统(较为典型)的做法是利用Web Services的概念，来实现网页上异步调用的工作。    这也是整个ASP.NET AJAX架构的基础，以及UpdatePanel控件的根本原理。    当然，因为通过这样的方式，您必须自行建立一些JavaScript代码，所以这种模式比较]]></description><category></category></item><item><title><![CDATA[如何在SQL Server数据库中加密数据]]></title><link>https://blog.csdn.net/freewyy/article/details/2985415</link><guid>https://blog.csdn.net/freewyy/article/details/2985415</guid><author>freewyy</author><pubDate>Fri, 26 Sep 2008 23:48:00 +0800</pubDate><description><![CDATA[       为了防止某些别有用心的人从外部访问数据库，盗取数据库中的用户姓名、密码、信用卡号等其他重要信息，在我们创建数据库驱动的解决方案时，我们首先需要考虑的的第一条设计决策就是如何加密存储数据，以此来保证它的安全，免受被他人窥测。 SQL Server中有哪一种支持可以用于加密对象和数据?从一开始就讨论一下SQL Server欠缺什么是明智的，或者是对于SQL Server中的加密部分你不应]]></description><category></category></item><item><title><![CDATA[ "此数据库没有有效所有者，因此无法安装数据库关系图支持对象"的解决方法]]></title><link>https://blog.csdn.net/freewyy/article/details/2985380</link><guid>https://blog.csdn.net/freewyy/article/details/2985380</guid><author>freewyy</author><pubDate>Fri, 26 Sep 2008 23:31:00 +0800</pubDate><description><![CDATA[sql2000备份的数据库还原到sql2005后，选择“数据库关系图”提示：此数据库没有有效所有者，因此无法安装数据库关系图支持对象。若要继续，请首先使用“数据库属性”对话框的“文件”页或   ALTER   AUTHORIZATION   语句将数据库所有者设置为有效登录名，然后再添加数据库关系图支持对象。解决方法如下： 1、设置兼容级别为90（2005为90） USE   [mas]]></description><category></category></item><item><title><![CDATA[删除数据库中重复数据的方法]]></title><link>https://blog.csdn.net/freewyy/article/details/2985337</link><guid>https://blog.csdn.net/freewyy/article/details/2985337</guid><author>freewyy</author><pubDate>Fri, 26 Sep 2008 23:05:00 +0800</pubDate><description><![CDATA[数据库的使用过程中由于程序方面的问题有时候会碰到重复数据，重复数据导致了数据库部分设置不能正确设置…… 方法一 declare @max integer,@id integer declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) > 1 open cur_rows fe]]></description><category></category></item><item><title><![CDATA[使用ASP.NET AJAX的注意事项]]></title><link>https://blog.csdn.net/freewyy/article/details/2985331</link><guid>https://blog.csdn.net/freewyy/article/details/2985331</guid><author>freewyy</author><pubDate>Fri, 26 Sep 2008 23:02:00 +0800</pubDate><description><![CDATA[ 1. 画面迁移应该使用执行画面重定向的Response.Redirect而不是Server.Transfer，因为Server.Transfer不改变IE客户端URL，会导致ASP.NET AJAX客户端脚本访问资源的时候出现URL错误。2.在服务器端注册脚本和隐藏字段应该使用类ScriptManager，而不是Page.ClientScript对象，因为Page.ClientScript的方法]]></description><category></category></item><item><title><![CDATA[Oracle与SQL Server选型时三个小差异]]></title><link>https://blog.csdn.net/freewyy/article/details/2985323</link><guid>https://blog.csdn.net/freewyy/article/details/2985323</guid><author>freewyy</author><pubDate>Fri, 26 Sep 2008 22:58:00 +0800</pubDate><description><![CDATA[ 甲骨文与微软两大数据库产品，是数据库发展史上的两座大山。这让我们在数据库选型的时候，基本上没有多大的选择余地，不是微软就是甲骨文。但是，从他们两者来说，还是有比较大的差异。今天笔者就谈谈在数据库选型的时候，不得不关注的他们之间的三个小差异。了解这些区别，能够给我们数据库选型带来很大的指导作用。　　一、 所支持平台的差异。　　甲骨文的数据库系统，是在JAVA平台上开发起来的，所以，保持着众多JAV]]></description><category></category></item><item><title><![CDATA[ASP.NET中常用的26个优化性能方法]]></title><link>https://blog.csdn.net/freewyy/article/details/2985314</link><guid>https://blog.csdn.net/freewyy/article/details/2985314</guid><author>freewyy</author><pubDate>Fri, 26 Sep 2008 22:54:00 +0800</pubDate><description><![CDATA[1. 数据库访问性能优化　　数据库的连接和关闭访问数据库资源需要创建连接、打开连接和关闭连接几个操作。这些过程需要多次与数据库交换信息以通过身份验证，比较耗费服务器资源。ASP.NET中提供了连接池(Connection Pool)改善打开和关闭数据库对性能的影响。系统将用户的数据库连接放在连接池中，需要时取出，关闭时收回连接，等待下一次的连接请求。连接池的大小是有限的，如果在连接池达到最大限度后]]></description><category></category></item><item><title><![CDATA[SQL Server 2008 的 Transact-SQL 语言增强（2）]]></title><link>https://blog.csdn.net/freewyy/article/details/2982920</link><guid>https://blog.csdn.net/freewyy/article/details/2982920</guid><author>freewyy</author><pubDate>Fri, 26 Sep 2008 13:53:00 +0800</pubDate><description><![CDATA[6．MERGE 语句在 SQL Server 2008 中，可以使用 MERGE 语句在一条语句中根据与源表联接的结果对目标表执行 INSERT、UPDATE 或 DELETE 操作。如：使用一个语句有条件地在单个目标表中插入或更新行，如果目标表中存在相应行，则更新一个或多个列；否则，会将数据插入新行。使用该语句还可以同步两个表，根据与源数据的差别在目标表中插入、更新或删除行。MERGE 语法包括]]></description><category></category></item><item><title><![CDATA[SQL Server 2008 的 Transact-SQL 语言增强]]></title><link>https://blog.csdn.net/freewyy/article/details/2982898</link><guid>https://blog.csdn.net/freewyy/article/details/2982898</guid><author>freewyy</author><pubDate>Fri, 26 Sep 2008 13:50:00 +0800</pubDate><description><![CDATA[Microsoft SQL Server 2008 对 Transact-SQL 语言进行了进一步增强，主要包括：ALTER DATABASE 兼容级别设置、复合运算符、CONVERT 函数、日期和时间功能、GROUPING SETS、MERGE 语句、SQL 依赖关系报告、表值参数和 Transact-SQL 行构造函数。1．ALTER DATABASE 兼容级别设置某些数据库行为与 SQL S]]></description><category></category></item></channel></rss>