Foi exatamente essa pergunta que eu fiz lá na palestra, mas pareceu
que ele não entendeu direito (acho que me expressei mal), tanto que
ele disse aquilo sobre ORDER BY + LIMIT = caos! Eu estava perguntando
exatamente isso: se eu vou usar um WHERE pra limitar a consulta, como
eu vou ordernar tudo antes de usar o WHERE. Mas tudo bem.
Acho que o maior problema ali, é que o palestrante deva ter esquecido
que ministrava para profissionais (ou aspirantes a profissionais) que
dificilmente irá trabalhar constantemente com uma tabela de 1000000000
de linhas, a ponto de uma paginação (incluindo ordenação por ORDER BY)
se tornar um caos. O
On 27 abr, 10:47, Rodrigo de Oliveira <
r.efr...@gmail.com> wrote:
> pois é, mas se precisar ordenar... bye bye esse campo! :P
>
> 2009/4/27 Arthur Vinicius <
arthurn...@gmail.com>
>
> > O que foi falado na palestra é que o LIMIT na verdade ele não limita a
> > busca, ele somente retorna com o limite, mas faz a busca em todo o banco. Ou
> > seja, ele tem um peso enorme, porque varre todo o banco do mesmo jeito.
>
> > Pelo que eu entendi você teria que ter campo para controle, um campo com
> > uma data, um inteiro, sei lá como p/ controlar a sua paginação.
>
> > 2009/4/27 Rafael Matos <
rafaeldvinc...@gmail.com>
> >>
http://www.mysqlperformanceblog.com/2006/09/01/order-by-limit-perform...
>
> >> Se depois ainda quiserem fazer paginação com where.... [?]
>
> >> 2009/4/27 Rodrigo de Oliveira <
r.efr...@gmail.com>
>
> >>> com certeza é mais rápido... carregar na memória sim seria um caos... e
> >>> tambem o que ele alegou foi fazer com where, nao pode trazer tudo.
>
> >>> pra fazer um teste e comprovar que é mais rápido (nao o limit e o where,
> >>> usar ou nao o limit) é só pegar uma tabela com 500 mil registros e fazer:
>
> >>> select * from tabela
>
> >>> e depois fazer:
>
> >>> select * from tabela limit 1,5
>
> >>> 2009/4/27 Gustavo Campos <
guhcam...@gmail.com>
>
> >>>> Eu acho (só acho) que dá pra você fazer a consulta inteira e
> >>>> armazenar em memória de alguma forma, e depois acessar partes dessa
> >>>> consulta independentemente, não?
>
> >>>> Mas mesmo se der, eu ainda acho que fazer a consulta pelo próprio
> >>>> MySQL usando o limit mesmo deva ser mais rápido, pura impressão. Não
> >>>> assisti a palestra do amigo ai e não vi quais os argumentos dele, mas
> >>>> estou cético.
>
> >>>> --
> >>>> Gustavo Campos
> >>>> Sistemas de Informação - UFMG
> >>>> Analista de Suporte - Telbrax LTDA
>
> >>>> 2009/4/27 Rodrigo de Oliveira <
r.efr...@gmail.com>:
> >>>> > e nao é só isso...
>
> >>>> > como vc vai entregar hoje em dia um grid lixo sem opção de ordenação?
> >>>> > segundo ele usar order by com limit é caos!
>
> >>>> > fala sério...
>
> >>>> > como vc vai fazer ordenação, com paginção, usando where...
>
> >>>> > o cara viajou legal.
>
> >>>> > 2009/4/27 Euber (Malk) <
eub...@hotmail.com>
>
> >>>> >> Pelo oque entendi , teria de ser feito uma consulta antes para
> >>>> >> determinar quantidade de registros existentes ou seja um COUNT com os
> >>>> >> mesmas condiçoes que seria usado na segunda consulta.
>
> >>>> >> Mas fica minha duvida, como poderiamos definir o limite EX: codigo
> >>>> >=
> >>>> >> 1 and codigo <= 10;
> >>>> >> esse exemplo so serviria se todos os codigo fossem sequencias e nunca
> >>>> >> pudessem ser apagados.
>
> >>>> >> então WTF?
>
> >>>> >> mais tem que olhar também a aplicação, se o for usar isso em uma
> >>>> query
> >>>> >> com tabelas de 100 registros usa limite mesmo porque o trabalho
> >>>> talvez
> >>>> >> não compense.
>
> > --
> > Arthur Vinicius
> >
arthurn...@gmail.com |
arthurvinicius.com
>
>
>
> 344.gif
> < 1KVisualizarFazer download