2015-11-25 45 views
1

Here是一個句子:爲什麼MySql不能在INSERT語句中使用PARTITION修剪?

MySQL能夠適用分區修剪SELECT,DELETE和UPDATE語句。 INSERT語句目前不能被修剪。

因此,當一個新的行插入MySQL能確定它屬於哪個分區?聲音奇怪。這是一個錯誤嗎?或者這個pharse是什麼意思?

+0

修剪插入語句可能並不嚴格需要。雖然所有分區可能被鎖定,但不必讀取它們。我很容易想到的一個例外是通過「唯一」約束條件來驗證記錄,但是在所有分區中應該相當快,而不是僅僅一個。 –

+0

@GordonLinoff大部分是正確的...異常不存在 - 不處理'UNIQUE'和'FOREIGN KEY',因爲代碼不想(也不試圖)檢查所有分區。 –

回答

2

當我看到它時,分區修剪優化目前依賴於對WHERE子句的解析來確定要訪問的分區。 INSERT聲明沒有WHERE子句,並且優化程序目前沒有其他修剪機制。

看起來好像分區修剪是目前正在進行中的工作。

相關問題