mysql 隔行匯入 MySQL 批匯入設定

2021-10-18 10:24:41 字數 1373 閱讀 9171

部分配置方法來自網路,僅作筆記不記錄**。

建立賬戶:create user '使用者名稱'@'訪問主機' identified by '密碼';

賦予許可權:grant 許可權列表 on 資料庫 to '使用者名稱'@'訪問主機' ;(修改許可權時在後面加with grant option)

在my.ini中加入下面幾個設定

innodb_flush_log_at_trx_commit = 0 #匯入完成後改回1

innodb_doublewrite=off #匯入完成後改回on

max_allowed_packet=1073741824#匯入完成後可以刪除

net_buffer_length=1073741824#匯入完成後可以刪除

mysql命令列下執行以下語句:

set unique_checks = off;#關閉唯一約束檢查

set sql_log_bin=0;#不寫binlog

set session sql_mode=」;#關閉長度檢查,防止某些欄位要匯入的內容比欄位設定的長度而導致匯入一半失敗了

mysql> set global sync_binlog=1000;

我在進行批量loaddata infile操作的時候,發現瓶頸是磁碟io(hdd)。頻繁的小檔案尋道,10m/s就滿占用了,通過將log與database分盤,也可以減少單盤的負荷:實際效果大概單盤占用降了60%,寫入速度可以達到24m/s。

在所有log中bin-log和undo這兩個是io最頻繁的,

但是windows下無法設定下面兩項,加入設定後將導致mysql無法啟動,我不明白原因

#innodb_undo_directory=j:/mysqllog/

#innodb_data_file_path = j:/mysqllog/ibdata1

所以退而求其次選擇移動了其他log的位置,

general_log_file="j:/mysqllog/flexq_cmpt.log"

slow_query_log_file="j:/mysqllog/flexq_cmpt-slow.log"

log-error="j:/mysqllog/flexq_cmpt.err"

log-bin="j:/mysqllog/flexq_cmpt-bin"

innodb_data_home_dir = #沒有這句不能設定下面兩句

innodb_log_group_home_dir= j:/mysqllog/

innodb_doublewrite_dir= j:/mysqllog/

移動log位置後要將原來的data資料夾下的log打包複製到新路徑下(因為我分不清哪個是哪個,就選擇全部複製),還要注意賦予新資料夾network service完全控制的許可權,否則mysql不能啟動。

mysql 隔行匯入 MYSQL快速匯入本地資料

mysql提供了從本地檔案快速導資料的命令,具體說明如下 load data low priority concurrent local infile file name replace ignore into table tbl name character set charset name te...

mysql批模式 MySQL 批量模式

peter 什麼是批量模式 從檔案中讀取標準sql 命令 通過互動模式進行詢問 為什麼需要使用批量模式 重複進行相同詢問 可以通過管道,詳細查詢返回結果 可以把查詢結果輸出到檔案中 可以很方便把指令碼分配給其他使用者 cron job 以批量模式建立表單 mysql create table my ...

mysql匯入情況 MySQL 匯入資料

mysql 匯入資料 本章節我們為大家介紹幾種簡單的 mysql 匯出的資料的命令。1 mysql 命令匯入 使用 mysql 命令匯入語法格式為 mysql u使用者名稱 p密碼 要匯入的資料庫資料 runoob.sql 例項 mysql uroot p123456 runoob.sql 以上命令...