Olha, concordo com o que disseram aí, mas temos que pensar bem antes
de escolher entre as normas e a performance.

Quando estamos falando de volume, estamos falando de um volume muito
grande de informação, ou um número excessivo de consultas ao banco de
dados. Isso é um pouco relativo, depende também da sua arquitetura
(servidores, rede, ...).

Se você vai construir uma aplicação e sabe que duas tabelas
relacionadas poderão ter milhões de registros, quando você cruzar as
duas, vai ficar oneroso. Porém, em tabelas com poucos mil registros,
pode ser algo aceitável, em relação ao benefício de ter um banco mais
organizado, sem redundâncias, até por que, muitos SGDBs tem soluções
embutidas para otimização e performance.


Esse é mais um caso em que o que conta é a velha relação
"custo/benefício". :). Eu faria uma modelagem bem normalizada, depois,
identificaria os pontos onde eu posso ter problemas de performance e
aí adaptaria conforme esta análise.



2008/9/18 Marcus Cavalcanti <[EMAIL PROTECTED]>:
> Boa Eric.
>
> Como o Eric disse, JOIN é algo muito custoso ao banco, não que seja errado,
> mas deve ser evitado se possível.
>
> Portanto, é importante pensar em uma modelagem que você evite ao maxímo a
> necessidade de JOINS, visando a performance. Nem sempre o mais organizado e
> bonito conceitualmente, é o mas eficaz.
>
> Por exemplo, normalizar dados na teoria é muito bonito, mas uma aplicação
> com grande volume de dados, acessos e tudo mais, você começa a enxergar
> normalização de outra maneira, sacou?
>
> Portanto, além de tudo que foi levantado, ter uma boa modelagem é
> fundamental. É meio inviável toda hora que for mostrar um conteúdo vc ficar
> fazendo um JOIN entre uma tabela notícia, por exemplo, com seu respectivo
> valor em uma tabela de idiomas.
>
> 2008/9/18 Eric Saboia (Fortes Informatica) <[EMAIL PROTECTED]>
>>
>> JOIN é uma das operações de query mais custosas para o banco.
>> Não existe uma "alternativa" padrão. A idéia é manter a modelagem do seu
>> banco da forma que evite ao máximo a necessidade de se fazer um JOIN.
>>
>> Além disso, atraves da aplicação você pode as vezes armazenar pequenos
>> resultados que evitem a necessidade de um JOIN em uma query que retornará
>> muitos registros. Por exemplo:
>> Você tem um cadastro de itens relacionados com uma tabela que guarda
>> icones de status dos itens.
>>
>> Você pode no começo da página percorrer esses icones de status (que
>> provavelmente são poucos) e guardar num array. Depois quando estiver
>> percorrendo os itens basta pegar a imagem correspondente através do array
>> que você armazenou.
>>
>> Não sei se ficou claro... mas já que o tópico nem é sobre esse assunto,
>> não vou aprofundar pra não perder o foco.
>>
>> ----- Original Message -----
>> From: Vinicius Cruz
>> To: CodeIgniter Brasil
>> Sent: Thursday, September 18, 2008 2:40 PM
>> Subject: Re: [CodeIgniter]Internacionalização - Ajuda com conceitos
>> uma pergunta meio off-topic,
>>
>> o JOIN diminui a performance nas consultas? Qual seria a alternativa?
>>
>> Vinicius
>>
>> 2008/9/18 Marcus Cavalcanti <[EMAIL PROTECTED]>
>>>
>>> Ah, e não menos importante, ter uma modelagem de dados que além de tratar
>>> a organização, trate a questão de performance, como por exemplo evitando
>>> JOINS o tempo todo.
>>>
>>> 2008/9/18 Marcus Cavalcanti <[EMAIL PROTECTED]>
>>>>
>>>> Você pode definir o idioma de diversas maneiras:
>>>>
>>>> - Lendo o header do navegador para definir idioma;
>>>> - Guardando na seção qual idioma (eu prefiro assim, menos
>>>> processamento);
>>>> - Apendando na URL o idioma.
>>>>
>>>> Eu prefiro armazenar em sessão, pq ao meu ver vc usando Hook, vc acaba
>>>> toda vez fazendo um processamento "desnecessário" para verificar os idiomas
>>>> e tomar partido do que usar, você guardando isso uma única vez em sessão, é
>>>> muito muitos menos custoso em termos de performance.
>>>>
>>>> Só não se esqueça:
>>>> - Questão de Unicode, de preferência usar UTF-8 (DB e arquivos);
>>>> - Internacionalização é muito mais do que textos, tem toda questão de
>>>> moedas, datas, separadores e validações por exemplo.
>>>>
>>>> http://www.w3.org/TR/i18n-html-tech-lang/
>>>>
>>>>
>>>> http://www.translate.com/technology/multilingual_standard/software_i18n_article.html
>>>>
>>>> http://www.mihai-nita.net/article.php?artID=20051025a
>>>>
>>>>
>>>> 2008/9/18 Edinho Almeida <[EMAIL PROTECTED]>
>>>>>
>>>>> No hook daria para setar também a configuração do DB para acessar o DB
>>>>> no idioma em questão.
>>>>>
>>>>> Abs
>>>>> Edinho
>>>>>
>>>>> 2008/9/18 Henrique de Castro <[EMAIL PROTECTED]>:
>>>>> > Cara, o CI já separa todas as mensagens, se eu fosse vc usaria hooks
>>>>> > para
>>>>> > setar a localidade e assim carregar os arquivos necessários de
>>>>> > mensagem.
>>>>> >
>>>>> > 2008/9/18 Cleyverson Costa <[EMAIL PROTECTED]>
>>>>> >>
>>>>> >> Pessoal,
>>>>> >>
>>>>> >> Qual a melhor forma de se trabalhar com Internacionalização??
>>>>> >>
>>>>> >> 1) Da primeira vz q o usuario entra vcs selecionam o idioma baseado
>>>>> >> em q,
>>>>> >> idioma do navegador, local de origem, outros??
>>>>> >>
>>>>> >> 2) Vcs fazem a conferencia via cookie, session, outros??
>>>>> >>
>>>>> >> 3) Quanto a tradução em si, é sugerido colocar tudo no mesmo
>>>>> >> arquivo,
>>>>> >> dividir um arquivo por página, outros??
>>>>> >>
>>>>> >> Caso alguém tenha alguma observação extra por favor incluir.
>>>>> >>
>>>>> >> Atenciosamente
>>>>> >>
>>>>> >> --
>>>>> >> Cleyverson Pereira Costa
>>>>> >> MSc Candidate in Computer Science
>>>>> >> Federal University of Pernambuco, Brazil
>>>>> >> +55 81 8785-1289 | +55 81 3274-4180
>>>>> >>
>>>>> >> _______________________________________________
>>>>> >> Lista mailing list
>>>>> >> [email protected]
>>>>> >> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>>>> >>
>>>>> >
>>>>> >
>>>>> > _______________________________________________
>>>>> > Lista mailing list
>>>>> > [email protected]
>>>>> > http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>>>> >
>>>>> >
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Abs
>>>>> Edinho Almeida
>>>>> 11 8962-9406
>>>>> _______________________________________________
>>>>> Lista mailing list
>>>>> [email protected]
>>>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>>>
>>>
>>>
>>> _______________________________________________
>>> Lista mailing list
>>> [email protected]
>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>>
>>
>> ________________________________
>>
>> _______________________________________________
>> Lista mailing list
>> [email protected]
>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>
>> _______________________________________________
>> Lista mailing list
>> [email protected]
>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>
>
>
> _______________________________________________
> Lista mailing list
> [email protected]
> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>
>



-- 
Newton Wagner

skype: newtonwagner
msn/gtalk: [EMAIL PROTECTED]

http://www.newtonwagner.net/
- http://www.owshit.com.br/

_______________________________________________
Lista mailing list
[email protected]
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br

Responder a