我应该何时使用LDAP与数据库/键值存储/列导向数据库/等?
答案 0 :(得分:36)
LDAP可以被视为数据库。但我假设您的意思是SQL数据库。
LDAP数据存储适用于与写入相比具有大量读取的系统。而其他数据库(如SQL存储)是为事务数据使用而设计的(高读取和写入)。
这就是LDAP是目录协议的原因。它非常适合你阅读很多并且几乎不写的目录。
来自here
LDAP被称为“一次写入多次读取”服务。那 也就是说,通常存储在LDAP中的数据类型 每次访问都不会改变服务。至 说明:LDAP不适合维护银行业务 交易记录因其性质而变化 访问(交易)。但是,LDAP非常适合 保持银行分行的细节,开放时间,员工 等。
这是另一个很好的介绍here - LDAP vs RDBMS
答案 1 :(得分:5)
除了Preet Sangha所说的内容之外,您还应注意LDAP是非事务性的。服务器可以任意延迟更新,因此下次读取更新的数据可能无法反映更新。如果您有事务要求,则无法使用LDAP;如果你不这样做,你可以。
答案 2 :(得分:4)
也很高兴read:
没有简单的答案,但以下注释可能有用:
写入期间的性能损失在于更新索引。该 更多的索引(为了更快的阅读)你想要的频率越低 更新目录。读:写入比率小于1,000:1或更高 用于大量读取优化的LDAP目录。
LDAP Replication为每次更新生成多个事务 您希望实际更新负载最低(1,000:1或更高)。
如果数据量很大(比如> 10,000),那么更新甚至是a的时间 少量索引可能很严重,因此您希望将更新保留为 实际可行(10,000:1)。
如果数据量相对较小(例如<1,000条记录),则为索引 谦虚且没有使用复制我们没有看到固有的原因 您无法在接近基于事务的表单中使用LDAP 系统,即每5-10次访问涉及读取然后写入 循环(在LDAP术语中修改)。
- 醇>
我们怀疑真正的答案 这个问题是(对已故的记忆道歉, 感叹Douglas Noel Adams):读写比例为42!
答案 3 :(得分:3)
以下是两者之间的区别: LDAP是高度优化读取的,它可以比MySQL数据库更快地完成它们,因此它可以比数据库解决方案在长期运行时更好地扩展,并且可以进行读取和写入。
我确信您会发现更多的应用程序支持LDAP作为身份验证方法而不是MySQL,您将能够将更多内容集成到您的目录中。我要提醒您,在首先进入LDAP之前,先了解一下特定LDAP实现的管理工具。 OpenLDAP很棒,但是手动修改目录总是很糟糕。
答案 4 :(得分:2)
过去,当然,以及来自Univ的目录服务器。密歇根代码库,一次写入多次读取肯定是这种情况,并且来自该代码库的目录服务器遭受差写入性能。但是,多年来,LDAP用户要求提高LDAP目录服务器的写入性能和事务质量,而现代的基于Java的目录服务器具有出色的读写性能。