隨筆 MySQL大資料匯入

2021-10-16 08:10:32 字數 1171 閱讀 4684

最近工作總是遇到分析一些大批量的資料,給的sql檔案有1-2g,每次把資料搞進去就得花費很長時間,網上看了很多方法,說什麼設定快取大小(set global max_allowed_packet=2*1024*1024)、通訊快取區間大小(set global net_buffer_lenght=100000)等等。

不知道是不是我操作問題,2g的檔案匯入伺服器還是得3-4小時,這簡直是浪費生命,各位高人有啥不一樣的見解可以告訴小弟哈。

後來查了很多,發現設定下面兩個引數還是效果能看的到,:

2g的檔案乙個小時就匯入完成了。

關閉唯一性檢驗:

因為匯入資料時,伺服器預設是匯入一次資料,伺服器檢測一次唯一性,當資料量很大時,自然很慢。所以匯入資料時關閉該引數,導完資料後再開啟該引數。(有個前提就是,當某欄位約束為unique時,你匯入的資料也必須是唯一的

關閉:set unique_checks = 0;

開啟:set unique_checks = 1;

關閉事務提交模式:

mysql 預設一條語句就是乙個事務,完成一條就提交一次(自動提交),所以你可以手動提交,也可以先關閉自動提交,導完之後再開啟自動提交。

關閉:set autocommit = 0;

開啟:set autocommit = 1;

所以實際個人操作:

1.win+r 開啟cmd 視窗

2.鏈結資料庫

mysql -uroot -p (root是賬號名,回車輸入密碼) 鏈結本地資料庫

mysql -uroot -p -h111.11.111.11 -p5642 連線資料庫伺服器

-u:使用者名稱

-p:密碼

-p:埠

3.選擇資料庫

use database;

4.改引數

set names utf8; #設定編碼格式,防止亂碼

set unique_checks = 0;

set autocommit = 0;

5.匯入檔案

source ***.sql (直接回車,不需要分號)

後面是絕對路徑哦!!!

6.恢復引數

set unique_checks = 1;

set autocommit = 1;

大資料技術隨筆

在美國與技術研究院中的定義是 指一種按使用量付費的模式,這種模式提供可用的,便攜的,按需的網路訪問,進入可配置的計算資源共享池,這些資源能夠被快速的提供,只需要投入極少的管理工作,或與服務 商進行很少的互動。資源共享池裡資源包括 網路,伺服器,儲存,應用軟體,服務等。指無法在一定時間範圍內用常規軟體...

mysql大資料表匯入匯出

客戶那一台流量分析裝置需要給更換成新裝置,但要求保留之前的流量分析資料,檢視了一下流量分析表情況,發現有幾張分鐘粒度的資料表資料量達到幾億條以上,資料庫使用的是mysql,使用mysql 的匯入匯出工具mysqldump是沒希望了,只能把幾個大資料量的表挑出來單獨處理,小資料量的表就用mysqldu...

大資料處理隨筆

1.mssql當資料庫資料超過1000萬的時候超時是正常的,所以當表資料到1000萬時候注意delete 2.今天遇到資料庫時間格式2014021000 當然是int型別哦 3.聯合索引使用 開始時間與結束時間這樣一起查詢的要建成索引 4.訂閱資料庫,只可以查詢操作,這樣的話可以在這個表上面建立索引...