大家好,我最近面臨一個需求。自己之前沒有經驗,來請教大家。
簡單來說,我們應用現在有一個用戶表,有一個卡表。 現在有一個專案要切過來,需要資料遷移。 但是雙方本身的表結構不一致,不能簡單地從原表匯出sql陳述句再匯入到目標表。
今天我看了些資料想試試用LOAD DATA INFILE的方式。 我弄了少量測驗資料, 在本地資料庫里搞了下腳本,發現是能順利實作遷移,但程序中有些不解的問題:
1. 我本地環境是Windows系統。
(1)在LOAD DATA LOCAL INFILE 后面是寫的'D:\\Users\\xxxx\\Desktop\\data_transfer_demo\\user_info.txt'這種路徑,
(2)LINES TERMINATED BY '\r\n' 這里寫的是 \r\n 的形式
(3)而且第一次跑還報安全設定的問題,后來在my.ini檔案加上了 secure_file_priv= 重啟mysql后才行。
我們有一個跳板機,Windows系統的,連生產環境。 里面有navicat, 但是我看其中的 secure_file_priv=NULL. 這該怎么辦呢? 難道要重啟生產的mysql?
2. 是關于性能的。 我這個需求,用戶表和卡表都是30萬的量。 我在本機測驗時發現,用戶表插入速度還行,但是卡表因為業務上的要求,需要拿原始資料中的一個欄位去用戶表里查別的欄位,用這種子查詢的方式獲得需要的資訊,再插入到卡表中。 這樣相當于每條卡表記錄插入時都要遍歷用戶表。 這樣肯定耗時長。 有沒有什么優化手段啊?
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/48398.html
標籤:MySQL
