[pgbr-geral] RES: Indice composto
Gente. Valeu pelas dicas mesmo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] RES: Indice composto
Mas assim: eu também vou buscar pelos campos descricao, data_inicio_agenda, data_fim_agenda além do titulo. Saco fora os indices? valeu ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] RES: Indice composto
Veja bem índices compostos tem um custo alto e precisam serem criados com parcimônia e precisão. Por exemplo, a ordem dos campos interfere bruscamente no desempenho do índice. Você só junta vários campos num mesmo índice se e somente se vai fazer consultas com frequência para o mesmo grupo de campos. Ainda assim vale a pena verificar se: - A tabela deve ter pelo menos alguns milhares de registros para o índice fazer sentido. - Cada campo deve ter alta seletividade, ou seja a proporção entre o número de registros na tabela e o número de valores distíntos no campo deve ser bem baixo (o ideal é N = n ). Claro, se você tiver uma restrição de unicidade para vários campos, isto não se aplica. E quando você cria uma restrição de unicidade o índice será criado automaticamente. Mas o problema da ordem dos campos permanece. []s Fábio Telles 2010/11/16 Marcal Hokama mhok...@hotmail.com ___ From: betol...@gmail.com Date: Tue, 16 Nov 2010 11:04:37 -0300 To: pgbr-geral@listas.postgresql.org.br Subject: [pgbr-geral] RES: Indice composto Mas assim: eu também vou buscar pelos campos descricao, data_inicio_agenda, data_fim_agenda além do titulo. Saco fora os indices? valeu Fiquei com uma dúvida, a sua busca vai ter na cláusula WHERE: 1) titulo E descricao E data_inicio_agenda E data_fim_agenda ou 2) combinações das colunas titulo, descricao, data_inicio_agenda, data_fim_agenda (às vezes algumas delas não aparecem). ??? Marçal de Lima Hokama e-mail: mhok...@hotmail.com http://twitter.com/mhokama ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- blog: http://www.midstorm.org/~telles/ e-mail / jabber: fabio.tel...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] RES: Indice composto
Moisés Caribé Ribeiro escreveu: - campos nulos não utilizam índices Ugh? É claro que posso ter consultas WHERE foo IS NULL que utilizam um índice. -- Euler Taveira de Oliveira http://www.timbira.com/ ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] RES: Indice composto
___ From: betol...@gmail.com Date: Tue, 16 Nov 2010 11:04:37 -0300 To: pgbr-geral@listas.postgresql.org.br Subject: [pgbr-geral] RES: Indice composto Mas assim: eu também vou buscar pelos campos descricao, data_inicio_agenda, data_fim_agenda além do titulo. Saco fora os indices? valeu Fiquei com uma dúvida, a sua busca vai ter na cláusula WHERE: 1) titulo E descricao E data_inicio_agenda E data_fim_agenda ou 2) combinações das colunas titulo, descricao, data_inicio_agenda, data_fim_agenda (às vezes algumas delas não aparecem). ??? Marçal de Lima Hokama e-mail: mhok...@hotmail.com http://twitter.com/mhokama ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] RES: Indice composto
Na clausula where vai ser um ou outro. ex: where titulo ilike '%valor%' ou data_inicio_agenda ilike '%valor%' Não vou unir os valores pra buscar depois, é um ou outro. A busca funciona conforme digita no campo, no evento keyup com ajax. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] RES: Indice composto
Então crie índices individuais para cada campo. Depois verifique se os seus índices estão sendo realmente utilizados. 2010/11/16 Beto Lima betol...@gmail.com Na clausula where vai ser um ou outro. ex: where titulo ilike '%valor%' ou data_inicio_agenda ilike '%valor%' Não vou unir os valores pra buscar depois, é um ou outro. A busca funciona conforme digita no campo, no evento keyup com ajax. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- blog: http://www.midstorm.org/~telles/ e-mail / jabber: fabio.tel...@gmail.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] RES: Indice composto
Então crie índices individuais para cada campo. Depois verifique se os seus índices estão sendo realmente utilizados. Ok obrigado, mas como posso verificar depois isso? ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] RES: Indice composto
From: betol...@gmail.com Date: Tue, 16 Nov 2010 18:28:58 -0300 To: pgbr-geral@listas.postgresql.org.br Subject: [pgbr-geral] RES: Indice composto Então crie índices individuais para cada campo. Depois verifique se os seus índices estão sendo realmente utilizados. Ok obrigado, mas como posso verificar depois isso? Olá Beto, Analisando o plano de execução de cada consulta com o comando EXPLAIN Mais detalhes sobre o comando em http://www.postgresql.org/docs/9.0/interactive/using-explain.html Marçal de Lima Hokama - e-mail:mhok...@hotmail.com http://twitter.com/mhokama ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] RES: Indice composto
___ From: betol...@gmail.com Date: Tue, 16 Nov 2010 14:10:24 -0300 To: pgbr-geral@listas.postgresql.org.br Subject: [pgbr-geral] RES: Indice composto Na clausula where vai ser um ou outro. ex: where titulo ilike '%valor%' ou data_inicio_agenda ilike '%valor%' Não vou unir os valores pra buscar depois, é um ou outro. A busca funciona conforme digita no campo, no evento keyup com ajax. Olá Beto, Agora que vi a tua consulta, vai ter um problema: o ilike com o texto de busca começando com '%'. Assim não vai usar índices. Mais em http://www.postgresql.org/docs/9.0/interactive/indexes-types.html Marçal de Lima Hokama - e-mail: mhok...@hotmail.com http://twitter.com/mhokama ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] RES: Indice composto
Meu caro; Utilização de índices depende de uma série de fatores: - Tabelas pequenas não utilizam índices - Saiba dosar a criação deles nas tabelas sabendo que muitos índices numa mesma tabela degradam operações de insert, update e delete quando intensas - Crie índices por campos que são utilizados em cláusula where ou join - campos nulos não utilizam índices Esta situação que você apresenta eu acho preciptada. Isso é aplicado no desespero quando nada mais resolve. A princípio, preocupe-se apenas em criar o índice em cima dos filtros utilizados. Lembre-se também que você já tem um índice único pelo título, ou seja, se o seu filtro for só pelo título, não precisa criar outro índice. Abraço De: pgbr-geral-boun...@listas.postgresql.org.br [mailto:pgbr-geral-boun...@listas.postgresql.org.br] Em nome de Beto Lima Enviada em: segunda-feira, 15 de novembro de 2010 17:45 Para: pgbr-geral@listas.postgresql.org.br Assunto: [pgbr-geral] Indice composto Pessoal me digam uma coisa: Se eu usar indices compostos, posso ter problemas de performance na minha base? Ex: tenho uma tabela com os seguintes campos CREATE TABLE agendas ( id_agenda serial NOT NULL, titulo character varying(200) NOT NULL, descricao text, data_inicio_agenda timestamp without time zone NOT NULL, data_fim_agenda timestamp without time zone NOT NULL, CONSTRAINT agendas_pk PRIMARY KEY (id_agenda), CONSTRAINT agendas_titulo_key UNIQUE (titulo), CONSTRAINT agendas_check CHECK (data_fim_agenda data_inicio_agenda) ) E meu indice: CREATE INDEX indice_busca ON agendas USING btree (titulo, descricao, data_inicio_agenda, data_fim_agenda); Tenho um form onde tenho estes campos do indice para fazer busca na tabela. Ta tudo na boa? ou é campo demais e posso perder performance!!! valeu ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral