1,试说明拆分数据库在数据库管理中的好处

数据库做拆分的几种方式: 按功能划分(垂直切分)将不同功能相关的表放到不同的数据库中,这样做的好处是非常直观。但当某一部分的功能其数据量或性能要求超出了可控的范围,就需要继续对其进行深入的再切分。

试说明拆分数据库在数据库管理中的好处

2,数据库为什么要分库分表

像sqlserver、oracle等等主流数据库都是关系性数据,这样的话问题就来了,什么是关系性数据呐,顾名思义就是表与表之间存在联系,字段和字段之间存在联系,比如学生表和班级表,他们肯定是存在关系的,既然这样为什么又要分表呐,这就和“类”差不多了,人以群居,物以类分。一点毛病都没有,一个表里存在的字段可以看成是对这张表的描述,学生表里有学生姓名,学生性别,这些都是对这张表的描述。假如你想一下,把一个不知道从哪来的化妆品名称放到对学生的描述里,合适吗?
1 基本思想之什么是分库分表?从字面上简单理解,就是把原本存储于一个库的数据分块存储到多个库上,把原本存储于一个表的数据分块存储到多个表上。2 基本思想之为什么要分库分表?数据库中的数据量不一定是可控的,在未进行分库分表的情况下,随着时间和业务的发展,库中的表会越来越多,表中的数据量也会越来越大,相应地,数据操作,增删改查的开销也会越来越大;另外,由于无法进行分布式式部署,而一台服务器的资源(cpu、磁盘、内存、io等)是有限的,最终数据库所能承载的数据量、数据处理能力都将遭遇瓶颈。3 分库分表的实施策略。

数据库为什么要分库分表

3,数据库的分离和附加有什么作用可以说详细点吗

一、可以切断数据库的使用 (比如当数据库日志很大占用了空间时,可以用分离数据库的方法来切断数据库,从而删除以前的数据库日志,来节省空间) 实践中碰到 数据库日志 很大(10G)占用了硬盘空间的情况处理: 方法: 1、停掉iis,然后分离数据库 2、修改数据库日志的名字 3、附加数据库,成功后可以删除数据库日志 二、可以在需要更换数据库物理存放地址时使用如果您数据库系统安装在系统盘(比如 C 盘),由于 C 盘容易受病毒侵害,您也许希望您的数据存放在非系统盘(比如 D 盘),要做的这点很简单,您并不需要重装数据库,只要把数据“分离”,然后将相关文件移动到 D 盘的某个目录,接着“附加”数据库即可。 SQL Server 2000允许分离数据库的数据和事务日志文件,然后将其重新附加到同一台或另一台服务器上。分离数据库将从 SQL Server 删除数据库,但是保证在组成该数据库的数据和事务日志文件中的数据库完好无损。然后这些数据和事务日志文件可以用来将数据库附加到任何 SQL Server 实例上,这使数据库的使用状态与它分离时的状态完全相同。 应注意,只有“使用本数据库的连接”数为0时,该数据库才能分离。所以分离数据库时尽量断开所有对要分离数据库操作的连接,如果还有连接数据库的程序,会出现数据库的连接状态窗口,显示正在连接此数据库的机器以及名称,点击清除按钮将从服务器强制断开现有的连接。

数据库的分离和附加有什么作用可以说详细点吗

4,在SQL中附加和分离数据库的目的和意义是什么呢

附加和分离数据库的意思:可以切断数据库的使用 (比如当数据库日志很大占用了空间时,可以用分离数据库的方法来切断数据库,从而删除以前的数据库日志,来节省空间)。分离数据库就是将某个数据库(如student_Mis)从SQL Server数据库列表中删除,使其不再被SQL Server管理和使用,但该数据库的文件(.MDF)和对应的日志文件(.LDF)完好无损。分离成功后,我们就可以把该数据库文件(.MDF)和对应的日志文件(.LDF)拷贝到其它磁盘中作为备份保存。附加数据库就是将一个备份磁盘中的数据库文件(.MDF)和对应的日志文件(.LDF)拷贝到需要的计算机,并将其添加到某个SQL Server数据库服务器中,由该服务器来管理和使用这个数据库。
附加和分离数据库一、可以切断数据库的使用 (比如当数据库日志很大占用了空间时,可以用分离数据库的方法来切断数据库,从而删除以前的数据库日志,来节省空间) 实践中碰到 数据库日志 很大(10G)占用了硬盘空间的情况处理:方法:1、停掉iis,然后分离数据库2、修改数据库日志的名字3、附加数据库,成功后可以删除数据库日志二、可以在需要更换数据库物理存放地址时使用如果您数据库系统安装在系统盘(比如 C 盘),由于 C 盘容易受病毒侵害,您也许希望您的数据存放在非系统盘(比如 D 盘),要做的这点很简单,您并不需要重装数据库,只要把数据“分离”,然后将相关文件移动到 D 盘的某个目录,接着“附加”数据库即可。SQL Server 2000允许分离数据库的数据和事务日志文件,然后将其重新附加到同一台或另一台服务器上。分离数据库将从 SQL Server 删除数据库,但是保证在组成该数据库的数据和事务日志文件中的数据库完好无损。然后这些数据和事务日志文件可以用来将数据库附加到任何 SQL Server 实例上,这使数据库的使用状态与它分离时的状态完全相同。应注意,只有“使用本数据库的连接”数为0时,该数据库才能分离。所以分离数据库时尽量断开所有对要分离数据库操作的连接,如果还有连接数据库的程序,会出现数据库的连接状态窗口,显示正在连接此数据库的机器以及名称,点击清除按钮将从服务器强制断开现有的连接。
主要是解决日志文件过大的问题,附加也可以用在转移服务器和服务器系统重新安装
打开"企业管理器",选择你要分离的数据库,单击右键,在“所有任务”上可以看到“附加数据库”、“分离数据库”。主要是来将你的数据库进行分离和附加,比如别人要用你的数据库,但你的数据库服务器是在你本机上,别人或许不能远程访问你的数据库,这样你就可以把数据库给分离掉,形成两个文件:.mdf--数据库文件;以及数据库日志文件log,这样你可以把这两个文件发给要用的人,他们可以在自己的机子上,用同版本的数据库服务器将你的数据库附加上,这样就可以知道你的数据库数据信息了。也许说的不是很全面吧!不过应该是离线数据库的方式吧~~~

5,数据库为什么要分库分表及实现策略

假如把所有的数据库都存在一张表中我们查询起来将十分困难,比如我们有一张存储一亿条数据的数据表。我们要在其中查询一条,查询的时间可想,但是如果我们将信息存储在不同表中并将不同表中的信息联合起来我们就可以实现快速的查询。进而减轻服务器的负担减轻数据库的负担。
1 基本思想之什么是分库分表?从字面上简单理解,就是把原本存储于一个库的数据分块存储到多个库上,把原本存储于一个表的数据分块存储到多个表上。2 基本思想之为什么要分库分表?数据库中的数据量不一定是可控的,在未进行分库分表的情况下,随着时间和业务的发展,库中的表会越来越多,表中的数据量也会越来越大,相应地,数据操作,增删改查的开销也会越来越大;另外,由于无法进行分布式式部署,而一台服务器的资源(cpu、磁盘、内存、io等)是有限的,最终数据库所能承载的数据量、数据处理能力都将遭遇瓶颈。3 分库分表的实施策略。分库分表有垂直切分和水平切分两种。3.1 何谓垂直切分,即将表按照功能模块、关系密切程度划分出来,部署到不同的库上。例如,我们会建立定义数据库workdb、商品数据库paydb、用户数据库userdb、日志数据库logdb等,分别用于存储项目数据定义表、商品定义表、用户数据表、日志数据表等。3.2 何谓水平切分,当一个表中的数据量过大时,我们可以把该表的数据按照某种规则,例如userid散列,进行划分,然后存储到多个结构相同的表,和不同的库上。例如,我们的userdb中的用户数据表中,每一个表的数据量都很大,就可以把userdb切分为结构相同的多个userdb:part0db、part1db等,再将userdb上的用户数据表usertable,切分为很多usertable:usertable0、usertable1等,然后将这些表按照一定的规则存储到多个userdb上。3.3 应该使用哪一种方式来实施数据库分库分表,这要看数据库中数据量的瓶颈所在,并综合项目的业务类型进行考虑。如果数据库是因为表太多而造成海量数据,并且项目的各项业务逻辑划分清晰、低耦合,那么规则简单明了、容易实施的垂直切分必是首选。而如果数据库中的表并不多,但单表的数据量很大、或数据热度很高,这种情况之下就应该选择水平切分,水平切分比垂直切分要复杂一些,它将原本逻辑上属于一体的数据进行了物理分割,除了在分割时要对分割的粒度做好评估,考虑数据平均和负载平均,后期也将对项目人员及应用程序产生额外的数据管理负担。在现实项目中,往往是这两种情况兼而有之,这就需要做出权衡,甚至既需要垂直切分,又需要水平切分。我们的游戏项目便综合使用了垂直与水平切分,我们首先对数据库进行垂直切分,然后,再针对一部分表,通常是用户数据表,进行水平切分。4 分库分表存在的问题。4.1 事务问题。在执行分库分表之后,由于数据存储到了不同的库上,数据库事务管理出现了困难。如果依赖数据库本身的分布式事务管理功能去执行事务,将付出高昂的性能代价;如果由应用程序去协助控制,形成程序逻辑上的事务,又会造成编程方面的负担。4.2 跨库跨表的join问题。在执行了分库分表之后,难以避免会将原本逻辑关联性很强的数据划分到不同的表、不同的库上,这时,表的关联操作将受到限制,我们无法join位于不同分库的表,也无法join分表粒度不同的表,结果原本一次查询能够完成的业务,可能需要多次查询才能完成。4.3 额外的数据管理负担和数据运算压力。额外的数据管理负担,最显而易见的就是数据的定位问题和数据的增删改查的重复执行问题,这些都可以通过应用程序解决,但必然引起额外的逻辑运算,例如,对于一个记录用户成绩的用户数据表usertable,业务要求查出成绩最好的100位,在进行分表之前,只需一个order by语句就可以搞定,但是在进行分表之后,将需要n个order by语句,分别查出每一个分表的前100名用户数据,然后再对这些数据进行合并计算,才能得出结果。上述整理于互联网

文章TAG:数据库分库有哪些好处  试说明拆分数据库在数据库管理中的好处  
下一篇