2011-10-06 36 views
1

我需要將> 10億行加載到空的MyISAM表中。我確定文件中的所有條目都是唯一的。用定義的PK將數據加載到表中是否更好,或者稍後添加PK?在之前或之後定義PK LOAD DATA INFILE

我有8GB內存和SAS磁盤工作站5GB內存限制存儲索引。當索引必須從光盤而不是從存儲器中搜索時,會有明顯的減速(從〜200k條目/秒到10〜20k條目/秒)。

回答

1

之前。如果您之後添加PK,則MySQL將創建一個臨時表來執行此操作。

+0

是這樣的情況,如果我ommit創建PK,並只是定義簡單的索引? – Leszek

+0

@Leszek之後添加一個簡單的索引也會讓MySQL創建一個臨時表來添加索引。 – Jim

+0

我決定刪除PK。我需要的僅僅是column1和column2的2個索引。所以我創建索引表,然後禁用鍵。上傳速度很快(〜100萬行/秒),但總共有超過10億行(21GB)。但是,一旦上傳完成,啓用密鑰需要24小時。有沒有加快速度的方法? Column1和Column2是UNSIGNED MEDIUMINT(3字節)。上傳之前會排序加快嗎? – Leszek