我目前將數據插入表中與的MyISAM發動機,的MySQL,LOAD DATA並行本地,禁用與使鍵
我希望通過建立LOAD DATA完成後的索引(預先禁用鍵和使得能夠優化LOAD DATA
他們完成後)。
從LOAD DATA CONCURRENT
文檔中,加載數據應該將記錄添加到表的末尾,同時我感興趣的是一個併發讀取到同一個表將繼續使用鍵。我保證讀取操作將嘗試從表中讀取信息,直到 最後一個可用索引(自動遞增的ID)在LOAD DATA CONCURRENT
開始之前。
例如
LOAD DATA CONCURRENT
將增加從指數100000開始的數據,並自動遞增,直到指數200000
在同一時間,可能會發生SELECT * FROM TableName WHERE id <=99999 AND ...
聲明。
是否可以僅在本地僅對LOAD DATA CONCURRENT
語句禁用密鑰,以便讀取操作仍將使用其SELECT
語句中定義的索引?
+1,我所有的鍵都只是鍵,我沒有任何主鍵(它們只是索引),它們也會用於選擇嗎?以及如何檢查這是確定的? – Michael
@Michael Hum,表格應該總是有一個主鍵。如果索引是非唯一的(既不是'PRIMARY KEY'也不是'UNIQUE'索引,而是一個普通的INDEX),那麼它們將被禁用。 – RandomSeed
好的,比我看到沒有別的辦法,這也是一個答案。順便說一句,表應該總是有一個主鍵是錯的!,有理由不能有一個主鍵作爲範圍分區的情況下,以及更多的其他原因... – Michael