Mysql 千萬資料快速匯入

2022-05-07 08:54:10 字數 636 閱讀 4299

最近碰到個專案,需要 千萬條資料入庫的問題,有原本的 類 csv 檔案匯入,

統計了下  資料行大概有 1400w 行之多

二話不說, 建表,直接 load

load data local infile '/data/data.csv' into table pk_book_price character set utf8  fields terminated by ',' lines terminated by '\n' (`no`,`name`,`price`,`ranking`);

照理說 這種方式 應該是非常快的, 可匯入完成還是活生生地耗費了接近3個多小時。

後來經過蒐集各方資料查證,終於找到還算靠譜的解決方案:

1、建表,但除去所有索引。

2、 依然 load data local infile 方式匯入。

3、 資料匯入完成後 再進行索引。

依照此過程下來,資料匯入 花費差不多 5分鐘左右,  索引重建在半小時左右,整個40分鐘內完成。還算能接受了。

因此表只需滿足 按照no查詢即可,沒有涉及 其他複雜sql,也無資料增量,只有簡單key-value查詢。所以沒有作水平,垂直,分庫 等操作,只建索引已經達到效能要求。

其他,不再多述。

有更好方法,請分享之。

mysql 千萬級資料的匯入匯出

最近應公司要求,在做資料庫的匯入匯出。經查詢每天的資料量在350w條左右。經過大量測試,感覺以下方法比較好 資料匯出 select into outfile 基本語法 select into outfile file name character set charset name export op...

MySQL資料快速匯入Redis

在之前我們講過mysql批量匯入兩百萬資料,那麼在匯入mysql之後,怎麼能將其快速匯入redis中呢?其實實際操作是比較簡單的,這裡主要分如下幾步 首先我們需要登入mysql,找到目標資料 然後我們需要執行相關的sql語句,查詢出想要的結果集 登入連線redis服務 把mysql查詢出的結果集使用...

mysql快速匯入資料方式

2.具體操作步驟 innodb flush log at trx commit 設定為 0,log buffer將每秒一次地寫入log file中,並且log file的flush 刷到磁碟 操作同時進行.該模式下,在事務提交的時候,不會主動觸發寫入磁碟的操作。innodb flush log at...