Trabalhando com Índices
Os índices tem por objetivo melhorar o desempenho das consultas feitas à base LDAP. Quando uma base não está devidamente indexada a busca será sempre feita em toda a base, pois não há índice de consulta. Esse é um recurso comum, amplamente usado em bases SQL.
Imagine que quanto maior a base de dados maior será o tempo de uma procura. Então, podemos afirmar que gerar índices melhora a performance do nosso servidor? Em geral sim. Mas o que não podemos esquecer é que cada índice requer tempo para ser mantido e usa memória adicional.
Portanto é recomendável criar índices apenas para atributos que são usados frequentemente em consultas. Indexar atributos desnecessários pode causar perda de performance.
A indexação em uma base LDAP é feita indicando quais atributos devem ser indexados e qual tipo de indexação deve ser usada.
Tipos de indexação
pres - de “present” deve ser utilizado para consultas do tipo ‘objectclass=person’ ou ‘attribute=mail’. Indicado para buscas de existência.
eq – de “equal” deve ser utilizado para consultas do tipo ‘uid=marcosl’, ou seja, para buscas por valores completos.
sub – de “substring” deve ser para consultas do tipo ‘uid=marcos*’, ou seja, para buscas por partes
Em termos gerais os tipos “pres” e “eq” se equivalem na maioria dos casos, isso porque o tipo “eq” também pode confirmar a existência ou não de um determinado valor. Assim sendo o tipo “eq” é mais amplo em seu escopo de atuação e portanto mais utilizado.
Os tipos de indexação podem ser combinados para atender situações onde as pesquisas mais realizadas são de dois ou mais tipos diferentes.
Indexando
Para fazer a indexação de sua base LDAP edite o arquivo de configuração “slapd.conf” e procure pela opção “index”. Pode-se definir quantas linhas forem necessárias para agrupar os atributos por tipo de indexação. A lista de atributos é separada por vírgulas.
Para indexar siga os passos:
1. Edite o arquivo “slapd.conf” e coloque a opção “index” assim:
index objectClass,uid,userPassword pres,eq
Neste caso não só colocamos a lista de atributos, mas também a lista de tipos de indexação.
2. Salve o arquivo;
3. Pare o servidor OpenLDAP;
4. Execute o comando:
slapindex -v
A opção -v serve para verbalizar a saída do comando, ou seja, para que posamos ver o progresso da indexação.
1. Execute o comando:
chown openldap: /var/lib/ldap/*
2. Inicie o servidor OpenLDAP
Recomendamos que a indexação seja feita de tempos em tempos, à medida que sua base de dados for crescendo.
Cuidando do permissionamento
No Gnu/Linux Debian o OpenLDAP é executado pelo usuário “openldap”. Entretanto a indexação é executada com o usuário “root”. Isso faz com que os índices sejam feitos com permissionamento para o usuário “root”.
Essa alteração de permissionamento nos arquivos de índices pode provocar erro ao se iniciar o OpenLDAP. Por isso o comando “slapindex”, ao terminar a indexação, emite esta mensagem:
WARNING! Runnig as root! There's a fair chance slapd will fail to start. Check file permissions!
Ela serve para alertar sobre o problema de permissionamento. O que deve ser feito para resolver o problema é corrigir o permissionamento com o comando abaixo:
chown openldap: /var/lib/ldap/*
Licença
Copyright 2007 Anahuac de Paula Gil e Francisco Kem Iti Saito
Permite-se distribuição, publicação e cópia literal da íntegra deste documento, sem pagamento de royalties, desde que sejam preservadas a nota de copyright, a URL oficial do documento e esta nota de permissão.
Permite-se também distribuição, publicação e cópia literal de seções individuais deste documento, sem pagamento de royalties, desde que sejam preservadas a nota de copyright e a nota de permissão acima, e que a URL oficial do documento seja preservada ou substituída pela URL oficial da seção individual.