2013-08-28 30 views
1

我們正在研究一個我們需要使用String ID作爲mongodb id的應用程序。我的問題是:如果我們在mongodb上進行分片,string id會導致任何問題?MongoDb分片和字符串ID

+0

你能給我們一個字符串的例子嗎? – Sammaye

回答

0

不,他們可以/應該/將在被分割之前被散列。 (雖然可能意味着計算機電源的成本很低)。

+0

他們只會散列,如果你創建一個散列索引 – Sammaye

+0

@Sammaye當然是的。我已經更正了我的答案,對此更具體。 – Daren

1

這在很大程度上取決於字符串的內容。例如,姓氏通常會造成自動平衡的錯誤分片關鍵字,因爲在幾乎所有語言中,字母姓氏的分佈是不均勻的。然而,這個問題可以通過tag based sharding來解決,但是這在縮放時需要相當多的知識和配置。

字符串

散列已經提到,但我想補充一點,你可以這樣做,當運行到分佈在不同地理位置的數據中心的問題,因爲你不能就能夠分配正確的ID範圍到其地理位置的任何更多的情況下,這是你的身份證(部分)由什麼組成。

另一種解決方案可能是使用複合分片密鑰。