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.

openldap_basico/trabalhando_com_indices.txt · Last modified: 2009/08/19 14:00 by anahuac
Recent changes RSS feed Creative Commons License Donate Driven by DokuWiki