MSSQL教程之利用GUID作为数据表主键的优点
其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。guid|数据利用GUID作为数据表主键的优点数据表主健一般接纳以下三种体例:
1.主动递增值。
2.独一称号。这个是利用本人界说的算法来天生一个独一序列号。
3.GUID(全局独一标识符)。
GUID与主动递增值及独一称号对照GUID
在客户端天生,由GUID的特征决意,经由过程GUID天生的值大概呈现反复的时机几近即是零,因而包管在拔出表的时分主键值独一。
能够便利处置散布式数据的提交,好比:分店数据向总店提交DD间接将该部分数据拔出便可。
撑持离线数据处置。对当地数据包举行新增纪录时便可将该数据表的关头字段值赋值,其处置办法是与在线新增时是分歧的。
主动递增值
在数据库服务器端天生,因为该值是由数据库体系外部处置的,亦包管其独一性,但因为其是在数据库服务器端天生,因而必需将该值前往客户端,客户端经由过程该值过行别的操纵。好比一张票据(主从表)是利用主动递增值,当拔出票据仰面后,必需将票据仰面的关头字段值前往,再拔出票据明细(票据明细是经由过程票据仰面关头字段举行联系关系的)。
不克不及很优点理散布式数据的提交,好比:分店数据向总店提交DD提交数据时必需从头天生该数据表的关头字段值,以包管该字段值独一。
要撑持离线数据处置必要举行分外的处置,对当地数据包举行保留纪录(保留到当地)时必要拔出一个假定独一值,在提交离线数据回数据服务器时再从头天生真实的独一值,偏重新举行相干的处置。
独一称号
在客户端天生或在服务端天生,相对主动递增值分歧的中央就是本人保护天生独一值的算法及所保留的一时值,简单形成堕落或别的成绩。假如是在客户端天生独一值的话,还必需包管所天生的值是独一的。
不克不及很优点理散布式数据的提交,好比:分店数据向总店提交DD提交数据时必需从头天生(或事后处置)该数据表的关头字段值,以包管该字段值独一
要撑持离线数据处置必要举行分外的处置,对当地数据包举行保留纪录(保留到当地)时必要拔出一个假定独一值,在提交离线数据回数据服务器时再从头天生真实的独一值,偏重新举行相干的处置。
实例申明
上面以一个新增票据保留对照GUID与主动递增值/独一称号的不同
举措
GUID
主动递增值/独一称号
票据仰面
新增
票据仰面关头字段值:猎取并填写
票据仰面关头字段值:无
保留
间接保留
起首猎取并填写关头字段值,然后再举行保留
前往
间接前往
前往时必需将关头字段值前往
票据明细
新增
联系关系票据仰面字段值:间接填写
票据明细关头字段值:猎取并填写
联系关系票据仰面字段值:无
票据明细关头字段值:无
保留
间接保留
猎取票据仰面关头字段值并填写到票据明细的联系关系票据仰面字段中;
然后猎取并填写票据明细关头字段值;
再举行保留
综合以上所述,用GUID作为数据表的关头字段值是能够加重关头字段相干的操纵的,而且是最间接有用的办法。
对于update操作,只需要把event中的旧行和新行值对调即可。 你觉得我的非分区索引无法对起子分区,你可以提醒我一下呀!没有任何的提醒,直接就变成了非分区表。不知道这算不算一个bug。大家也可以试试。 入门没那么困难,精通没那么容易 Mirror可以算是SQLServer的Dataguard了。但是能不能被大伙用起来就不知道了。 对于微软系列的东西除了一遍遍尝试还真没有太好的办法 但换公司用MSSQL2K感觉自己好像根本就不了解MSSQL。什么DTS触发器以前根本没用过。 你可以简单地认为适合的就是好,不适合就是不好。 where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。 我是一个ERP初学者,对于前台运用基本熟悉,但对于后台SQLServer的运用一点也不懂,特想学习下相关资料。至少懂得一些基本的运用。希望各位能给于建议,小弟再谢过!
页:
[1]