有好多種方法。。。之前也總結了一些,但放到現在來看,效率都一般,於是重新思考總結這個問題;
方法一:使用儲存過程procedure每次insert的時候mysql都會自動提交,然後會有其他的一些耗時的操作,所以。。。。。取消掉自動提交不就好了嘛。。。直接 set autocommit=0;測試結果:80萬:9.67秒;1000萬:3分鐘;
100萬:大概10多秒左右;
方法二:直接用insert into … select … from …也就是不停地複製表裡的資料,再插入drop table if exists test2;
create table test2 (c1 int(11) default null,c2 varchar(30) default null);
insert into test2 values(1,'a'),(2,'b'),(3,'c');
insert into test2 select * from test2;
測試結果:參考:
百萬條資料分頁
寫出 之前,先說明一下原理,比較簡單。有一張表 test 如下 結構是 id 自動編號 txt 假設40條記錄 現在要每頁顯示10條記錄,則每頁要顯示的資料應該是 第一頁 10 第二頁 11 20 第三頁 21 30 第四頁 31 40 如要顯示第一頁,最簡單的方法就是 select top 10 ...
如何利用jdbc快速插入百萬條資料
當須要向資料庫插入百萬條資料時,利用hibernate,mybatis等持久層框架時耗時較久,此時使用jdbc插入效率會更高。此種場景特別適用於讀取檔案匯入到資料庫。可以利用批處理來加快jdbc的插入效率。string sql insert into person id,name values co...
併發插入資料百萬條
1 新聞併發入庫資料 apioperation value 測試新增新聞動態 public void testcreate integer start,integer count 測試大批量新增新聞動態介面 param count param start void testto161 integer...