考慮讓一個表只包含三個值中的一個值; A,B和C.當然,在這個領域定義索引是無用的,因爲索引基數是不夠的。相反,使用分區是一個很好的例子。使用兩個分區還是比沒有分區更好?
事情是在我的情況,我有兩種類型的查詢;只與As和其他與As和Bs一起工作的記錄一起工作。如果我爲每個值定義一個分區,使用As和Bs的查詢將需要使用兩個分區的索引。
那麼哪一個更好?
- 定義沒有分區的字段的索引。
- 將表格分成兩個分區,As和Bs在同一個分區中。在該字段上設置索引。
- 將表格分成三個分區。
考慮讓一個表只包含三個值中的一個值; A,B和C.當然,在這個領域定義索引是無用的,因爲索引基數是不夠的。相反,使用分區是一個很好的例子。使用兩個分區還是比沒有分區更好?
事情是在我的情況,我有兩種類型的查詢;只與As和其他與As和Bs一起工作的記錄一起工作。如果我爲每個值定義一個分區,使用As和Bs的查詢將需要使用兩個分區的索引。
那麼哪一個更好?
分區標準: 如果表大於5GB,那麼你應該去分區,否則結果並不令人鼓舞。 [在100GB數據庫上測試]
使用DBMS_REDEFINITIION
我不確定什麼是DBMS_REDEFINITIION,但是快速搜索顯示它與Oracle有關,在這種情況下,我必須說我正在談論MySQL。如果你向我提供一份參考資料,那將會很好,謝謝。 – Mehran
我的壞..我給了錯誤的參考..是的。我正在談論甲骨文。 –
您提供的信息不足。 As,Bs和Cs的相對比例是多少? –
除非表格很大,否則分區不會有什麼幫助,大表示它們包含至少10 ** 7行。 –
@GordonLinoff老實說,我只是在設計模式,猜測比例對我來說很難,但我想我可以說| A | <| B | <| C |。如果你能解釋爲什麼這個比例對你很重要,這將是很好的。 – Mehran