最近公司分配了乙個任務,測試乙個向資料庫存入千萬級資料工具的效率及所存在的問題。於是乎首先測試已存在的工具的訪問效率,結果如下:
mysql 資料庫:
1萬條數 據耗時8分鐘
5萬條數 據耗時42分鐘
遠端連線oracle資料庫:
5萬條資料 耗時7分14秒
10萬條資料 耗時14分27秒
20萬條資料 耗時33分24秒
40萬條資料 耗時1時零3分28秒
效率都慘不忍睹,資料量還沒上百萬級,已經耗時一小時以上了,於是採取措施,改原來的一條條資料插入,為一組組資料插入:
conn.setautocommit(false);
string sql = "插入語句」;
preparedstatement pst = conn.preparestatement(sql);
pst.setobject(1, "");
pst.addbatch();
pst.setobject(2, "");
pst.addbatch();
pst.executebatch(); //500條為一組,進行一次提交
pst.close();
conn.commit();
使用executebatch()方法後,效率有了質的飛躍,結果如下:
mysql資料庫:
5萬條資料: 15秒
100萬條資料: 4分49秒
1000萬條資料:47分31秒
遠端oracle資料庫:
100萬條資料: 平均耗時1分20秒
1000萬條資料:24分10秒
兩種資料庫均在一小時內完成了千萬級資料插入!
MySQL 查詢速度慢
2016年09月30日 14 31 44 以下是基於我結合b 樹的資料結構和對實驗結果的推測作出的判斷,如有錯誤,懇請指正!今天實驗了一下mysql的count 操作優化,以下討論基於mysql5.7 innodb儲存引擎.x86 windows作業系統。建立的表的結構如下 資料量為100萬 首先是...
mysql查詢百萬資料量時速度慢怎麼解決?
這兩天,越來越覺得自己做的玩家歷史表,查詢速度很慢,開始還以為是網路的問題,然後持續了一兩天很快pass了這個想法。很可能是自己的查詢速度慢,於是進入資料庫看了一下,發現歷史記錄已經達到了600多萬條了。隨著dau的上公升,玩家越來越多,乃至於歷史記錄也成倍的增長,雖然自己做了定時刪除七天以前的記錄...
MySQL儲存寫入速度慢分析
問題背景描述 在mysql中執行sql語句,比如insert,賊慢,明明可能也就只是一行資料的插入,資料量很小,但是耗費的時間卻很多,為什麼?一 儲存結構分析mysql儲存結構圖 解析 1 讀操作 記憶體讀 cache快取讀 磁碟物理讀 讀取到的資料會按上述順序往回送。2 寫操作 記憶體資料直接寫入...