我有10万条记录,
搜索就非常之慢了……当然,如果用DN直接取记录,LDAP效率的确很高,
但是搜索呢?
没有看出来好在哪里10来万条记录,搜索就要10多秒了,
实在不能忍。我是用jndi做的,ldap是openldap,
请问各位,如何提高搜索效率程序上我觉得我已经尽力了,openldap需要怎样配置才能提高效率呢?

解决方案 »

  1.   

    ldap是树状结构的,完整的dn查询必然很快的,
    楼主的搜索是不是只是根据一个叶子来搜索,
    像netscape directory sdk for java ,好像还不支持这种搜索
      

  2.   

    谢谢两位的回复,
    我现在测试用的是openldap,
    接近10万记录的情况下
    (1)完整的dn直接lookup,非常快,几十毫秒就可以
    (2)给定检索条件filter查询,非常慢,要十来秒即便是jndi里面的ctx.search()函数,也要花10来秒。
    也就说可能是server的原因了。请问server如何配置才能优化?
    我是按照默认配置安装的,启动的时候选项为:slapd -d 2
      

  3.   

    openldap有个配置文件的,有index这一项的,具体不清楚,楼主去相关的论坛找找看吧
      

  4.   

    谢谢我先建立一棵树,每个节点是一个group,
    树的结构是随机生成的,一共有1000个节点即第n个节点以第n-1个节点为父节点。然后把10万个节点随机加入到这1000个group中
    建立索引之后查询还是比较慢,
    都是秒的数量级而我希望是50万的记录……
      

  5.   

    那对比 Oracle 呢,他们对10万纪录 需要多少时间? 还没有专门去测试速度呢 , 那楼主觉得 LDAP 有什么优点了(除了这个缺点)? 
    找找 Bekerly 数据库的资料看看 他到底什么优势和缺点。