有什麼我可以在my.ini文件中加快「LOAD DATA INFILE」的速度?MySQL負載數據INFILE服用13小時
我有兩個MySQL 5.5實例的每一個具有結構化一個相同的表如下:
CREATE TABLE `log_access` (
`_id` bigint(20) NOT NULL AUTO_INCREMENT,
`timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`type_id` int(11) NOT NULL,
`building_id` int(11) NOT NULL,
`card_id` varchar(15) NOT NULL,
`user_key` varchar(35) DEFAULT NULL,
`user_name` varchar(25) DEFAULT NULL,
`user_validation` varchar(10) DEFAULT NULL,
PRIMARY KEY (`_id`),
KEY `log_access__user_key_timestamp` (`user_key`,`timestamp`)
KEY `log_access__timestamp` (`timestamp`)
) ENGINE=MyISAM
在日常基礎上我需要從前一天從實例的移動數據到實例B,它由大約2500萬條記錄。目前,我做了以下內容:
- 在實例A,生成具有「WHERE時間戳之間 ‘2014年9月23日00:00:00’的OUTFILE和「2014年9月23日23:59 :。59' 這通常需要小於2分鐘
- 在實例B,執行‘LOAD DATA INFILE’這是問題區域 ,因爲它需要13個小時
- 在實例A,刪除記錄。這可能會是另一個
- 對於實例B,運行狀態在實例B上,截斷表
我也考慮過分區表和交換分區。 EXCHANGE PARTITION在5.6中支持,我願意更新MySQL,但是,所有文檔都討論了表之間的交換,而我還沒有能夠確認我可以在數據庫實例之間做到這一點。
實例之間的複製,但由於我過去沒有複製過,而且這是一項時間敏感的任務,所以我不太願意踏入新的水域。
任何智慧的話都非常感謝。
您是否試圖在LOAD DATA INFILE之前禁用實例B上的密鑰? – VMai 2014-09-24 17:01:38
因此,文件有多大> – 2014-09-24 17:39:07
不,EXCHANGE PARTITION無法將分區從一個實例移動到另一個實例。 – 2014-09-24 17:44:47