在Access沒有導出SQL的功能,那么ACCESS數據庫數據如何導入mysql數據庫中,下面就介紹下Access 數據導入mysql的方法吧!
1、在access中建個視圖,得到自己想要的數據;
2、把這個視圖查詢到的數據,導出成文本格式,我用的是CVS;
3、用文本編輯器,把導出的數據 處理成 SQL語句;
4、用mysql命令,導入mysql。
有木有發現,在實際操作直到最后一步,才發現問題:數據量太大,這一步很慢很慢。慢也就罷了,可是馬上發現,數據中時間格式不對。比如Access中是2011-1-1,而mysql這邊,期望得到的是2011-01-01,就這一個時間,要改動幾十萬條記錄,還不如重新導一份新的呢。
于是,重復步驟2,得到數據。
因為導入過程慢的實在太離譜了,就找了個mysqldump 備份出來的文件來看,看一看mysql官方覺得怎樣導入數據會更快,于是發現了諸如下面的內容:
Sql代碼
LOCK TABLES `tablename` WRITE;
ALTER TABLE `tablename` DISABLE KEYS;
INSERT INTO `tablename` (id,name,password) VALUES
-- 這里是數據
;
ALTER TABLE `tablename`ENABLE KEYS;
UNLOCK TABLES;
LOCK TABLES `tablename` WRITE;
ALTER TABLE `tablename` DISABLE KEYS;
INSERT INTO `tablename` (id,name,password) VALUES
-- 這里是數據
;
ALTER TABLE `tablename`ENABLE KEYS;
UNLOCK TABLES;
很明顯,這里的SQL從3個方面做了優化:
1、加了只寫的鎖(解鎖之前,不能查詢,同時索引 可以最后做,插入數據 就會快啦);
2、Disable了所有鍵(于是,就不用再做外鍵檢查了,全心插入數據);
3、insert into 用一條語句完成(一條語句 和全條語句 的性能,差別不是一般的大啊,這樣之后,幾分鐘就能搞定)。