今天在項目上新增功能在調整大數據量的表結構是被同義詞分表和視圖的問題困惑了2天時間,僅此記錄一下。
一、同義詞建立
- 首先假設大數據量的表user,其中有大量的用戶信息月爲5千萬調數據。在做插入操作的時候操作大數據量的表會造成卡頓所以將user表中的數據分爲5個表來保存。分別爲user_01、user_02、user_03、user_04、user_05.
- 首先將新建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;
具體得原理流程圖如下。希望幫助到大家。