0
Couchdb通過使用順序標識顯示出極大的性能提升。然而,僅僅通過查看內容(例如將用戶名散列成ID)就能夠瞬間「知道」對象的ID是有些事情要說的。 我怎樣才能或多或少地達到散列ID的便利性,然而順序ID的性能提升。CouchDB使用順序標識,但能夠根據內容立即確定標識
Couchdb通過使用順序標識顯示出極大的性能提升。然而,僅僅通過查看內容(例如將用戶名散列成ID)就能夠瞬間「知道」對象的ID是有些事情要說的。 我怎樣才能或多或少地達到散列ID的便利性,然而順序ID的性能提升。CouchDB使用順序標識,但能夠根據內容立即確定標識
我不認爲解決方法是可能的。
查看鍵查找只比文檔ID查找慢一點點。 (請參閱benchmarks。)我的理解是,文檔_id
的類型在查看查找的情況下不會影響性能,因爲它依賴於其自己的獨立B樹結構。因此,實際查找用戶信息時,查看順序識別的文檔是完全正確的。
但我明白,你想成爲能夠註冊用戶,並保證不能有任何的用戶名衝突。所以你必須在文檔ID中有用戶名。
這是如果你決定要對CouchDB的最終一致性方法反叛做相應的事情。
而且,我的理解是,你不太可能會遇到性能降級,除非你正在做的隨機用戶名的批量插入或處理大量的每秒新用戶註冊。
這與其他數據庫所做的性能相同。您可以更快地插入數據,而無需通過鎖定/交易來強制插入數據。
一個瘋狂的想法,我只是有可能也工作,雖然這是很難說的表現會是什麼樣子在實踐中沒有想出來。您可以將它們一起存儲在單個文檔中(甚至分爲a-doc,b-doc等),並使用文檔更新處理程序來確保新註冊的用戶名被自動添加/拒絕。這自然會導致另一個想法......保持包含用戶名 - >順序doc id映射日誌的文檔。如果您無法將其插入日記本文檔中,那麼您不需要繼續添加該用戶。 – 2011-01-09 07:14:54