Em 19 de setembro de 2014 23:28, Wellington <[email protected]> escreveu: > Pessoal, > > em uma tabela foi criado um indice assim: "campo = false". > > Quando eu rodo a consulta selecionando "campo is false", o indice nao é > utilizado. > O indice so é utilizado se seleciono "campo = false". > Alguem saberia me explicar por que isso acontece ?
Esse é um recurso do PostgreSQL chamado índice parcial (ou /partial index/ [1]). Se for utilizar esse recurso, você precisaria criar um índices para os valores false e outro para os valores true. Dependendo do número de registros da tabela, um índice simples (sem a clausula de condição explícita) já é o bastante. Resumindo: ao invés de criar o índice com uma condição (coluna = valor), utilize apenas o nome da coluna. CREATE INDEX <indice> ON <tabela> (<nome_da_coluna>) Dá uma lida na documentação abaixo: [1] http://www.postgresql.org/docs/9.3/static/indexes-expressional.html TIAGO J. ADAMI http://www.adamiworks.com @tiadami _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
