資料庫大資料量去重實現方式

2021-08-20 09:51:08 字數 494 閱讀 4431

前提:

表a 字段 id、a1、a2(可以有多個字段,在此為方便只列出3個字段,其中id是主鍵,因此在乙個表中是唯一的)

方式一:

delete from a where a.id not in(select max(id) from a group by a1,a2);

說明:資料量很大時候,執行非常慢。大資料量的時候,delete執行效率本身就很低,再加上分組查詢。

建議設計資料表的時候應該考慮用hadoop或者在插入資料的時候加個唯一索引,這樣就可以保證插入資料本身就是沒有重複的。

方式二:

1、建立乙個臨時表,將不重複的資料插入裡邊

creat table temp as select max(id) as id,a1,a2 from a group by a1,a2

2、將臨時表中的資料匯入到原表中

執行truncate table命令將原來表的資料刪除,再用insert into select語句,在此不在贅述

Oracle 大資料量去重實驗

sql view plain copy 環境 64位11.2g 一 建立測試表,生成2000萬測試資料,其中200萬重複 create table test t id number 8 not null primary key,name varchar2 32 begin fori in1 1800...

java資料庫層面大資料量處理方式 面試

1 nginx 分發到各個伺服器上 2 接下來到伺服器端,通過dubbo實現查詢服務 3 使用zokkeeper 進行服務註冊 4 對資料庫的操作,使用mycat實現資料庫路由 5 資料庫層面使用分庫分表 這四點不展開寫,這五個部分連起來就可以搭建乙個分布式的系統,這個只是主要流程,還需要考慮很多其...

大資料量演算法

給40億個不重複的unsigned int的整數,沒排過序的,然後再給乙個數,如何快速判斷這個數是否在那40億個數當中 位圖思想解法 include stdio.h include stdlib.h include memory.h define max num 4294967295 int mai...