前提:
表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...