Em 10/03/08, Roberto Mello<[EMAIL PROTECTED]> escreveu: > On Sun, Mar 9, 2008 at 5:19 PM, Ribamar Sousa <[EMAIL PROTECTED]> wrote: > > Em 09/03/08, Roberto Mello<[EMAIL PROTECTED]> escreveu: > > > > > > Nao sei se voce entendeu que se tu fazes um count() na tabela inteira, > > > tu NAO ESTAS USANDO INDICE NENHUM. > > > > Não entendi, pois sinceramente não sabia disso. > > > Isso é um ponto de confusão freqüente. Os aficionados do MySQL > freqüentemente fazem "benchmarks" em que comparam a performance do > COUNT() (sem nenhuma condição) do MySQL com o do PostgreSQL como > "prova" que o MySQL é "muito mais rápido". > > Ora, quando usando MySQL com tabelas MyISAM o MySQL faz um cache do > número de registros, então a operação COUNT() sem condições retorna > instantâneamente. MyISAM não tem que se preocupar com transações nem > nada. > > No PostgreSQL se você fizer uma COUNT(), o valor tem que ser > condizente com a *transação* onde a consulta foi feita. Ou seja, para > uma mesa tabela, os valores de COUNT() vão ser diferentes conforme a > transação. Não se há outras razões técnicas por que não fazer um cache > similar ao do MySQL para os casos onde se quisesse o valor de tuplas > "committed", mas confio no PGDG (que é muito competente) que se não > foi feito é por que há boas razões para tal. > > Outro erro freqüente em relação à índices é que botam um índice numa > coluna varchar, aí fazem consultas usando lower(colunavarchar). O > índice não será usado por que o índice está agindo sobre os valores > normais. Para que uma consulta com lower() use um índice, tem que se > criar um outro índice funcional, ou seja um índice em > lower(minhacolunavarchar). > >
roberto, para esses casos eh possivel usar índices funcionais para indexar aqueles valores apos o uso do lower ou de qualquer outro tratamento > Roberto > > _______________________________________________ > pgbr-geral mailing list > [email protected] > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > -- Nabucodonosor Coutinho -- O cartão de crédito que você ganha comprando ou indicando pessoas -> http://www.cartaounicardmegabonus.net _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
