2012-06-29 138 views
4

我來給你一個絕望的令人失望的搜索後,網上的答案,我的問題: 哪一個更快:LDAP或關係數據庫?LDAP VS關係數據庫

我需要建立一個既有用戶身份驗證又有授權的系統。 我知道LDAP具有這種需求的「結構」,但它比MySQL更快嗎?

+0

這個問題是無法回答的。性能是**實現**的一個特性,而不是模型的特性。另外,我已經看到在閱讀模式下閃電般快速的LDAP系統,但是更新需要鎖定層次結構根目錄的LDAP目錄。事情真的停止了「快速」,隨時發生...... –

+2

歐文,實際上沒有。這個問題肯定是可以回答的 - LDAP是一種輕量級的二進制協議,SQL是一種重量級的基於ASCII的語言。因此,通過設計,LDAP的資源密集程度要低得多,而且解析和處理速度更快。至於實現,OpenLDAP比現有的所有SQL服務器快幾個數量級,特別是對於authC/authZ任務,而且對於其他任何可以很好地適用於分層數據佈局的任何其他服務。 – hyc

回答

7

爲了驗證和授權的目的,我認爲LDAP提供了性能和簡單性之間或安裝和維護之間的最佳組合。作爲協議的LDAP非常小,只需要相對較少的網絡帶寬。這個小協議還使加密傳輸具有相當高的性能。

LDAP也很簡單,服務器易於部署和現代化,專業化的品質LDAP服務器可提供出色的性能與關係數據庫中,所有其他的事情都是平等的,例如硬件和查詢類型。

我同意,要麼可以在你的情況下使用,但一般LDAP是因爲它的簡單性並降低維護成本的認證和授權更好。至於性能方面,我測試的LDAP服務器每秒提供大約28,000次認證,而postgres則在同一硬件上提供大約42%的認證數,雖然很難比較蘋果和橙子。

現代專業品質的LDAP服務器還提供用於安全密碼存儲的極其強大和快速的加密哈希,以及在需要可逆密碼的情況下,如AES的合理強大的可逆分組密碼,如果客戶端必須使用SASL的DIGEST-MD5機制用於無密碼認證。

0

IMO這不是一個真正的問題,因爲它總是取決於具體實現

我可以放在這裏只有我的經驗:LDAP很慢,SQL很快。我使用MS SQL 2008,在我的情況下,由於其重複查詢的智能緩存,速度非常快。

但你是否需要它變得異常快速?與用戶,授權和身份驗證一起工作時,基於LDAP的解決方案通常可以更輕鬆,更好地集成到其他軟件和/或LAN基礎架構。

+0

您的特定LDAP實現是什麼? – EJP

+0

EJP:Windows Server上的Active Directory。 –

+0

我想在這裏笑一笑,沒有其他意見。 –

5

我同意艾爾,不可能一般說哪個更快。這都是上下文的。 我喜歡這種真理之後,Al提出了一個普遍的觀點,即LDAP很慢。 :)我離題...

說笑歸說笑,把它歸結爲你正在試圖做什麼對目標系統進行了優化,做什麼。 MySQL/MSFT SQL Server /等。被構建爲通用商店,您將(傾向於)通過數據存儲各種查詢模式的規範化數據。他們在堆棧的各個層次上都有各種邏輯來幫助您對數據進行各種類型的查詢計算,甚至可以讓您在最瞭解的情況下向QP提示。 LDAP目錄通常會進行非常不同的優化...就像存儲具有特定查詢模式的分層結構對象(如LDAP RFC所指定)一樣。 AD比如說很快...很快。它針對對象搜索&檢索和關聯操作(如auth)進行了優化。

就像任何事情一樣,你可以使用得好也可以使用不好。

在瘋狂的縮放模式下,我懷疑你可以很成功地使用。