2009-10-06 85 views
3

一直在研究使用多列主鍵,並且性能對於流量和數據庫的大小非常重要我需要知道在開始在我的許多表上拋出唯一ID方法之前是否有任何要考慮的事項並開始使用多列主鍵。MySQL中的多列主鍵是一個優化問題嗎?

那麼,使用多列主鍵與基本單列自動輸入主鍵的性能/優化優缺點是什麼?

回答

0

我不認爲多主鍵會有任何性能問題。它或多或少具有多個索引(您將花費更多時間在插入時計算索引值)。

有時,數據模型使用多個鍵更有意義。我擔心首先會很直接,並擔心第二個表現。您始終可以添加更多索引,改進查詢或轉換服務器設置。

我認爲我遇到的最多的是一個4列主鍵。讓我畏縮一點,但它的工作¹。


[1]「工作」被定義爲是指「應用程序執行以規範」,並且不意味着暗示實際任務是實現使用所述應用程序。 :)

2

是否有一個特定的原因,你需要/想要使用多列鍵而不是(我假設)已經創建了單列鍵?

Natural Keys的其中一個問題是處理級聯所有外鍵的鍵值更新。代用鍵例如自動增量列可以避免這種情況。

在性能方面,取決於行數,列的數據類型,存儲引擎以及您專用於MySQL的RAM數量,多列鍵可能會影響性能,這是由於該指數。

根據我的經驗,在開發和維護方面,使用代理鍵作爲PK幾乎總是更容易,然後創建索引來覆蓋自然鍵中的查詢。但是,確定應用程序真實性能影響的唯一方法是使用真實的實際負載和數據集對其進行基準測試。

HTH -

克里斯