`
meiyx
  • 浏览: 183725 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

什么是分区表?为什么要用分区表?如何创建分区表?

阅读更多
如果你的数据库中某一个表中的数据满足以下几个条件,那么你就要考虑创建分区表了。

    1、数据库中某个表中的数据很多。很多是什么概念?一万条?两万条?还是十万条、一百万条?这个,我觉得是仁者见仁、智者见智的问题。当然数据表中的数据多到查询时明显感觉到数据很慢了,那么,你就可以考虑使用分区表了。如果非要我说一个数值的话,我认为是100万条。

    2、但是,数据多了并不是创建分区表的惟一条件,哪怕你有一千万条记录,但是这一千万条记录都是常用的记录,那么最好也不要使用分区表,说不定会得不偿失。只有你的数据是分段的数据,那么才要考虑到是否需要使用分区表。

    3、什么叫数据是分段的?这个说法虽然很不专业,但很好理解。比如说,你的数据是以年为分隔的,对于今年的数据而言,你常进行的操作是添加、修改、删除和查询,而对于往年的数据而言,你几乎不需要操作,或者你的操作往往只限于查询,那么恭喜你,你可以使用分区表。换名话说,你对数据的操作往往只涉及到一部分数据而不是所有数据的话,那么你就可以考虑什么分区表了。

    那么,什么是分区表呢?

    简单一点说,分区表就是将一个大表分成若干个小表。假设,你有一个销售记录表,记录着每个每个商场的销售情况,那么你就可以把这个销售记录表按时间分成几个小表,例如说5个小表吧。2009年以前的记录使用一个表,2010年的记录使用一个表,2011年的记录使用一个表,2012年的记录使用一个表,2012年以后的记录使用一个表。那么,你想查询哪个年份的记录,就可以去相对应的表里查询,由于每个表中的记录数少了,查询起来时间自然也会减少。

    但将一个大表分成几个小表的处理方式,会给程序员增加编程上的难度。以添加记录为例,以上5个表是独立的5个表,在不同时间添加记录的时候,程序员要使用不同的SQL语句,例如在2011年添加记录时,程序员要将记录添加到2011年那个表里;在2012年添加记录时,程序员要将记录添加到2012年的那个表里。这样,程序员的工作量会增加,出错的可能性也会增加。

    使用分区表就可以很好的解决以上问题。分区表可以从物理上将一个大表分成几个小表,但是从逻辑上来看,还是一个大表。

    接着上面的例子,分区表可以将一个销售记录表分成五个物理上的小表,但是对于程序员而言,他所面对的依然是一个大表,无论是2010年添加记录还是2012年添加记录,对于程序员而言是不需要考虑的,他只要将记录插入到销售记录表——这个逻辑中的大表里就行了。SQL Server会自动地将它放在它应该呆在的那个物理上的小表里。

    同样,对于查询而言,程序员也只需要设置好查询条件,OK,SQL Server会自动将去相应的表里查询,不用管太多事了。

    这一切是不是很诱人?

http://blog.csdn.net/smallfools/archive/2009/12/03/4930810.aspx   一个相当不错的介绍表分区的文章
分享到:
评论
1 楼 laiyuan 2011-05-16  
分库分表,主从同步!

相关推荐

    oracle普通表转化为分区表的方法

    使用`DBMS_REDEFINITION.FINISH_REDEF_TABLE`结束重定义过程,此时原表`EMP`被替换为新表`EMP_1`,现在是一个分区表。 8. **清理**: 最后,可能需要删除旧的非分区表`EMP`,并更新任何引用原表的代码或对象。 ...

    BLOG_如何将一个普通表转换为分区表.pdf

    首先在源数据库上创建好分区表的定义,然后使用数据导出工具将非分区表的数据导出到一个文件中。接着,在目标数据库上删除原非分区表,并将数据从文件导入到新创建的分区表中。这种方法的优点是易于理解和操作,但...

    MySQL分区表自动创建及删除存储过程

    它可能还会解释如何将现有表转换为分区表,或者如何设计新的分区表结构以适应特定的查询模式。 "使用说明.txt"文件应该是关于如何部署和使用这些存储过程和事件的详细指南,包括如何启用事件调度器,如何调用存储...

    oracle创建分区表.pdf

    3. 创建分区表:使用CREATE TABLE语句创建了一个名为guestbook的新分区表,并且指定按时间字段分区。每个分区被分配到之前创建的表空间,并且设置了初始存储参数。创建分区表时,通过PARTITION BY RANGE子句定义了...

    43.要不要使用分区表?1

    1. **InnoDB分区表的间隙锁行为**:在InnoDB引擎中,由于分区表被视为多个独立的表,间隙锁的处理也会有所不同。例如,如果在一个分区上加了间隙锁,不会影响其他分区的数据,因此在不同分区上的插入操作可能不会...

    43要不要使用分区表?.pptx

    43要不要使用分区表?.pptx

    互联网公司为啥不使用mysql分区表

    "互联网公司为啥不使用mysql分区表" 在互联网公司中,mysql分区表是一个比较少用的技术,这是因为分区表存在一些缺陷和限制,使得互联网公司更多地选择自己分库分表来水平扩展数据库。 首先,分区表的设计需要考虑...

    oracle分区表之hash分区表的使用及扩展

    Oracle分区表中的Hash分区是一种基于哈希算法的分区策略,适用于...在实际应用中,创建和扩展Hash分区表时,应结合业务需求和数据特性,综合考虑分区键的选择、分区数的设定以及扩展策略,以实现最佳的性能和管理效果。

    SQL SERVER 2008分区表快速创建.doc

    SQL Server 2008 分区表快速创建是指在 SQL Server 2008 环境中快速创建分区表的过程。分区表是指将大型表分割成多个小表,以提高查询性能和数据管理效率。下面是快速创建分区表的步骤和相关代码脚本。 一、定义...

    硬盘分区表修改

    具体步骤包括启动DISKEDIT,选择需要的驱动器和分区表,然后将分区表导出为文件。 2. **将分区表拷贝到故障机:**使用软盘启动故障机,并通过DISKEDIT将备份的分区表文件写回故障机的硬盘0面0柱1扇区,即硬盘分区表...

    ORACLE分区表的创建

    ### ORACLE 分区表的创建详解 #### 一、概述 在Oracle数据库中,分区是一种高效的数据管理方式,尤其适用于大型表和索引组织表。通过将数据逻辑地分割成多个独立的部分(即分区),可以显著提高查询性能,并简化表...

    分区表解释-深入浅出硬盘分区表

    硬盘分区表是计算机存储系统中的一个重要组成部分,它负责组织硬盘空间并将其划分为多个独立的区域,以便操作系统管理和存储数据。本文将详细解释硬盘分区表的位置、结构以及如何通过理解这些知识来修复受损的分区表...

    Oracle分区表用法

    - 无法直接将已存在的表转换为分区表,需使用在线重定义表功能。 - 分区管理可能增加数据库复杂性。 4. **表分区的几种类型及操作方法** - **范围分区(Range Partitioning)**:根据分区键的范围划分数据。...

    分区表损坏时的数据修复 硬盘主引导记录.docx )

    在使用DiskMan重建分区表时,需要注意备份分区表的重要性。备份分区表可以避免硬盘分区信息的损失,避免数据的丢失。如果没有备份分区表,可以下载DISKGEN软件,然后在工具选项中,选备份分区表,一般默认是备份到...

    易我分区表医生--重建损毁的分区表

    “易我分区表医生”是一款专业的数据恢复工具,专为解决分区表损坏问题而设计。它能够快速扫描硬盘,定位并修复受损的分区表,帮助用户找回丢失的分区和数据。这款软件以其简单易用的界面和高效的数据恢复能力赢得了...

    MS SQL Server分区表、分区索引详解

    使用分区表的主要目的是为了改善大型表及具有多种访问模式的表的可伸缩性和可管理性。这里的“大型表”指的是数据量巨大的表,“访问模式”是指因不同的查询目的而需要访问的不同数据行集合。分区可以通过将数据分割...

    CW M301Hv300分区表.rar

    4. **固件更新流程**:如何使用分区表信息进行安全有效的固件更新。 5. **安全性考虑**:如何通过分区策略来增强系统的安全性和数据保护。 6. **系统恢复机制**:如何利用分区表来设计备份和恢复方案。 7. **资源...

    海思MTD分区表

    在HI3516C这样的嵌入式系统中,MTD分区表是至关重要的,因为它定义了存储设备如何被划分为不同的逻辑区域,每个区域有特定的用途,例如引导加载程序、固件、文件系统等。 HI3516C是一款高性能、低功耗的视频处理...

    SQLserver创建分区表.pdf

    那么,什么时候需要创建分区表呢? 一、什么时候需要创建分区表? 如果你的数据库中某个表中的数据满足以下几个条件,那么你就需要考虑创建分区表了: 1. 数据库中某个表中的数据很多,但是很多是什么概念?一万...

Global site tag (gtag.js) - Google Analytics