最近碰到個專案,需要 千萬條資料入庫的問題,有原本的 類 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...