LDAP에서 Index는 대단히 중요한 요소 중 하나입니다.
Search를 얼마나 빠르고 효율적으로 할 수 있느냐가 LDAP의 핵심이라고 본다면,
Index 역시 대단히 중요하겠죠.
하지만, 그렇다고 무작정 Index를 많이 생성한다고 좋은것은 아닙니다.
그만큼 Add/Delete/Update 시에 Index 정보도 같이 바뀌어야 하므로,
성능저하가 있을 수 있기 때문입니다.
또한, OpenLDAP의 Index는 많이 불안하기 때문에(옛날에는 그랬는데, 요즘은 어떨지 모르겠네요) 너무 많은 Index를 관리하다 보면 Index가 깨지는 경우도 많이
발생할 수 있습니다.
그리고, 특히 "sub"(SubString) Index는 다른 Index보다 관리에 더 힘들기 때문에 가능하면 사용하지 않는 것이 좋습니다.
그리고 "approx" Index는 오타와 같이 한 자 정도 틀린 경우 비슷한 것을 찾아주는
Index로 별로 그렇게 찾을 일은 없을 것이고, 한글은 아마 안될 것입니다.
즉 아래의 경우, approx를 빼고 Index를 구성해 주시고,
아래와 같이 Index를 만들어 줌으로써 속도 향상은 기대할 수 있을겁니다.
>>윤지영 님께서 쓰시길<<
:: openLDAP를 사용하고 있습니다.
::
:: 데이타가 2000건일때에는, 약 1~2초만에 사람을 찾더니
::
:: 데이타가 1만건이 되니까 5~8초정도 시간이 걸립니다.
::
:: slapd.conf 파일을 이용하여 인덱스를 걸려고 하고 있습니다.
::
:: LDAP 클라이언트로는 MS사의 IE나 Outlook 를 사용하고 있습니다.
::
:: LDAP 서버를 debug 모드로 실행하니까,
::
:: MS사의 제품은 아래와 같은 필터 처리를 하더군요.
::
:: filter: (|(mail=지영*)(|(cn=지영*)(|(sn=지영*)(givenname=지영*))))와 같이
::
:: slapd.conf 파일에서
::
:: index cn,sn,givenname,mail pres,eq,sub,approx
::
:: 위와 같이 인덱싱을 하고 나서, 데이타를 다시 입력하면
::
:: 빨라지나요?
::
:: 참고로 openLDAP 서버에 데이타를 입력하는 ldif 파일의 형태는
::
:: 다음과 같습니다.
::
:: dn: uid=jyyun, o=kaist.ac.kr
:: cn: 윤지영
:: sn: 윤
:: givenname: 지영
:: objectclass: person
:: mail: jyyun@kaist.ac.kr
::
::
|