Olá amigos vou dar meu pitaco também> Eu já trabalho com banco de dados faz algum tempo(7 anos+ -) e apesar de desenvolver um sistema interno para uma empresa(eu sei que fazer um sistema para internet é bem diferente) ele possuía uma tabela M:N com 200 mil registros, o que acontece é que além da utilização do join para fazer o relacionamento também deve ser feito filtros que minimizem a quantidade de registros que serão selecionados, por isso eu sei que apesar de uma tabela possuir 200 mil registros, os filtros garatem que não sejam feitos 200 mil relacionamentos. Os bancos de dados relacionais possuem engines que enxugam ao máximo o processo de busca. Por isso é muito importante conhecer bem a engine do seu banco de dados quando o projeto for muito grande, por exemplo eu sabia que internamente o banco de dados que eu utilizava na empresa(Firebird) todo relacionamento que era feito diretamente com where (tab1.cod = tab2.cod ) ele analisava e transformava em um inner join para ai sim fazer o relacionamento e além disso os filtros eram realizados de cima para baixo por isso eu já colocava no início da filtragem aquela que me reduzia no máximo a quantidade de registros e por último quando necessário eu criava índices específicos para determinadas consultas isso chegava a melhora em torno de 60% a velocidade da minha consulta (em teste que eu fiz uma consulta que demora 1min10s+- caiu para 25s+- após a criação dos filtros). Bom acho que é isso, eu sei que para um sistema de internet isso é muito mais complexo pois uma coisa são 50 terminais acessando um bd outra coisa são milhares de acessos.
_______________________________________________ Lista mailing list [email protected] http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br

