• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > Oralce水平分表

Oralce水平分表

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了Oralce,水平,分表,工作中,遇到,一张,每天,插入,很等相关知识,希望本文的分享对您有所帮助

工作中遇到一张表每天都插入很多数据,随着时间的推移数据量会变的很大上百万条甚至上千万条记录。这样我们能不能把表进行拆分呢,答案是肯定的Oracle 很早就考虑到这个问题提供了水平拆分。 Oracle 10 g 中提供下面三中分区: 1)范围分区(Range partition)

工作中遇到一张表每天都插入很多数据,随着时间的推移数据量会变的很大上百万条甚至上千万条记录。这样我们能不能把表进行拆分呢,答案是肯定的Oracle 很早就考虑到这个问题提供了水平拆分。

Oracle 10 g 中提供下面三中分区:

1)范围分区(Range partition)

2) 哈希分区(Hash partition)

-

3)列表分区(List partition)

由于水平有限下面重点介绍范围分区

范围分区,顾名思义,就是根据表的某个字段的值,以固定的一个范围作为一个分区来划分数据

1.1可以根据序号分区建表

create table test1

1.(
2. ID NUMBER not null, 3. JQBH VARCHAR2(20),
4. FJH VARCHAR2(20)
5.)
6.partition by range (ID) 7.(
8. partition part_01 values less than(30000000) tablespace WLKP_FP_DATA_2011, 9. partition part_02 values less than(60000000) tablespace WLKP_FP_DATA_2012, 10. partition part_03 values less than(maxvalue) tablespace WLKP_FP_DATA_2013 11. );
从上面我们看出按照序号分区1-30000000数据存储在part_01分区表中,30000000-60000000数据存储在第part_02分区表中。这样就达到水平拆分表的目的

1.2可以根据日期分区建表

create table test2

1.(
2. ID NUMBER not null, 3. JQBH VARCHAR2(20),
4. FJH VARCHAR2(20),
5. KPRQ DATE 6.)
7.partition by range (KPRQ) 8.(
9. partition part_01 values less than(TO_DATE('2012-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) tablespace WLKP_FP_DATA_2011, 10. partition part_02 values less than(TO_DATE('2013-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) tablespace WLKP_FP_DATA_2012, 11. partition part_03 values less than(MAXVALUE) tablespace WLKP_FP_DATA_2013 12. );
从上面建表语句我们可以看到通过时间按照年存储数据表。

通过以上方式以上方式我们可以将数据比较大的表根据ID 时间自动拆分的其他分区表中。

以上方式在系统设计表结构的时候就考虑到分表情况,实际工作中由于对系统数据量的遇见不足,没有在设计表的时候考虑的表水平切分情况。那么我们有没有办法对现有表进行拆分和改造呢。答案是肯定的。

现在对表WLKP_FP_KJ进行扩展改造

1.创建新表空间

CREATE TABLESPACE "WLKP_FP_DATA_2010"

表空间创建代码

1.LOGGING
2.DATAFILE 'E:\Oracle\product\10.2.0\oradata\wlkp\WLKP_FP_DATA_2010.ORA' 3.SIZE 5M REUSE AUTOEXTEND
4.ON NEXT 1024K MAXSIZE 32767M EXTENT MANAGEMENT LOCAL
5.SEGMENT SPACE MANAGEMENT AUTO ;
6.commit;
这里我们新建WLKP_FP_DATA_2010表空间,按照年来存储扩展WLKP_FP_KJ表当然也可以建立2011、2012、2013...表空间存储未来的数据

2创建新表WLKP_FP_KJ_TEST

表结构按照1.2日期分区建表

3.新表建立后,复制老表数据

insert into wlkp_fp_kj_test select* from wlkp_fp_kj

4.将老表wlkp_fp_kj 删除

5.重命名wlkp_fp_kj_test 为wlkp_fp_kj

这样通过以上方式我们可以讲原来wlkp_fp_kj 按照时间水平分割存储到不同的表空间了.

通过分区表查询数据分别存储在哪个分区表中.

select * from WLKP_FP_KJ partition(WLKP_FP_DATA_2011) ;
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Oralce水平分表
  • Oralce数据导入出现(SYSTEM.PROC_AUDIT)问题处理方法

相关文章

  • 2018-12-05MySQL内存表的特性与使用介绍
  • 2018-12-05MySQL怎么进行单表查询?单表查询的语句
  • 2018-12-05Oracle错误ORA-01950对表空间“system”无权限解决
  • 2018-12-05SQLSERVER 中datetime 和 smalldatetime类型分析说明
  • 2018-12-05mysql中innoDB锁的介绍
  • 2018-12-05SQL Server 更改DB的Collation
  • 2018-12-05php数据库扩展mysqli详细使用教程
  • 2018-12-05解析MySQL 主从复制的原理和配置
  • 2018-12-05【MySQL】MySQL的数据类型优化
  • 2018-12-05MySQL优化之-集群搭建代码步骤详解(图)

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 在安装sql2005中或安装后sa用户无法登陆系统解决方法
    • 使用Memcache缓存mysql数据库操作的原理和缓存过程浅析
    • MySQL8.0.3 RC版发布的新变化
    • 如何快速掌握基本MySQL?
    • 除MSSQL数据库text字段中恶意脚本的删方法
    • mssql中获取指定日期所在月份的第一天的代码
    • 关于InnoDB型数据库优化的实例详解
    • Linux系统下导出ORACLE数据库出现Exporting questionable statis
    • 一个查看MSSQLServer数据库空间使用情况的存储过程 SpaceUsed
    • MySQL优化之表结构优化的5大建议(数据类型选择讲的很好)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有