oracle数据库大量数据同义词分表存储与视图查询

今天在项目上新增功能在调整大数据量的表结构是被同义词分表和视图的问题困惑了2天时间,仅此记录一下。

一、同义词建立

  1. 首先假设大数据量的表user,其中有大量的用户信息月为5千万调数据。在做插入操作的时候操作大数据量的表会造成卡顿所以将user表中的数据分为5个表来保存。分别为user_01、user_02、user_03、user_04、user_05.
  2. 首先将新建4张全新的表02-04,然后将user表更名为user_01代码如下。
rename user to user_01;

    3.然后建立新的同义词syn_user与user_01进行关联

create or replace synonym SYN_user for user_01;

   4.建立关联后在数据库中进行插入操作仅需要用同义词进行插入操作

insert into syn_user(id ,name)values(1,leonado);

 二、视图的建立

1.建立视图需要将已经分表的5张表进行集合查询。并且加入触发器

create or replace view user as
	select * from user_01 union all
	select * from user_02 union all
	select * from user_03 union all
	select * from user_04 union all
	select * from user_05;


create or replace trigger TRI_USER
  instead of update on user  
  for each row
declare

2.这样视图就建立完毕了,查询时只需要和之前一样使用user作为表面来进行查询。不用修改之前的查询代码了。

3. 切换同义词语句,只需替换后面USER_02的数字03,04..
create or replace synonym syn_CERT for USER_02;

 

 

具体得原理流程图如下。希望帮助到大家。

oracle数据库大量数据同义词分表存储与视图查询_第1张图片

你可能感兴趣的:(数据库)