a consulta SQL mais cavala que já vi (para os programadores informáticos)

Autor Mensagem
Sam
Moderador
# nov/07 · Editado por: Sam


Como tem mt programador aqui, resolvi compartilhar esse momento nerd:

peguei no "shows processlist" do mysql a consulta mais cavala que já fizemos por aqui... ela não é pesada - roda rapidinho - mas usa muitos rescursos/funções do mysql. É quase uma aula. =P

http://img81.imageshack.us/img81/8130/consultamysqlmaiscavalaxu9.gif



Ela é a query que gera a lista de bandas por cidade do Palco.
http://palcomp3.com/mp3/sp/taubate/todos.htm

Se vc viu algum defeito, sinta-se a vontade para palpitar. =)


SELECT a.id, a.url, trim( a.nome ) AS nome, g.genero_sub,
CASE WHEN (
v.posicao IS NULL
AND i.id_artista IS NULL
)
THEN "9999999"
WHEN (
v.posicao IS NULL
AND i.id_artista IS NOT NULL
)
THEN "9999998"
WHEN i.id_artista IS NOT NULL
THEN (
v.posicao -2000
)
ELSE v.posicao
END AS colocacao, IF( a.nome REGEXP '^[a-z0-9]', 1, 0 ) AS checker
FROM artistas a
INNER JOIN generos_sub g ON ( g.id = a.genero_sub )
LEFT JOIN views_artistas_historico_semanal v ON ( v.id_artista = a.id
AND (
v.data = IF( DATE_FORMAT( NOW( ) , '%w' )
BETWEEN 1
AND 2 , DATE_FORMAT( DATE_SUB( NOW( ) , INTERVAL 7
DAY ) , '%u%/%Y' ) , DATE_FORMAT( NOW( ) , '%u%/%Y' ) ) )
)
LEFT JOIN inicial i ON ( i.id_artista = a.id )
WHERE a.ativo =1
AND a.id_cidade =785
ORDER BY checker DESC , nome ASC


Dogs2
Veterano
# nov/07
· votar


letra c

Sam
Moderador
# nov/07
· votar


O lance da posição serve para gerar o lance dos destaques e a "hierarquia" dos negritos ali (bandas que foram destaque na capa e/ou que tenham muitos acessos ganham destaque).

O regexp é para jogar para o final as bandas que usavam de artifícios para ficarem primeiro nas listagens por ordem alfabética. Ou seja, antes, a banda "/*-//-/ BANDA ESPERTA \-\\-*\" ficaria em primeiro na lista por ordem alfabética. Com aquele regexp ali, ela ficará por último.

As loucuras com datas ali serve para se basear no ranking da semana atual, desde que seja, se não me engano, quarta-feira.

Sugestões? =)

The Blue Special Guitar
Veterano
# nov/07
· votar



THEN "9999999"



Isso é POG ou é impressão minha?

hahaha

The Blue Special Guitar
Veterano
# nov/07
· votar


http://www.totalsecurity.com.br/article.php?sid=732

Artigo interessante sobre SQL Injection

The Blue Special Guitar
Veterano
# nov/07
· votar


Tentei fazer uns aqui no fórum, parece que tá seguro =D

conehc
Veterano
# nov/07
· votar


Sam
não entendo nada de programação, mas gosto de ficar olhando esses codigos pra tentar descobrir o que eles fazem... geralmente isso me faz pensar que eu fiz muito bem em fazer relações internacionais ao invés de ciencias da computação (eu ia estudar na ufop, mas desisti)

Simonetti
Veterano
# nov/07
· votar


Já vi muito pior!

sobrevivente
Veterano
# nov/07
· votar


Maluquinho esse select... mas Já vi muito pior...
No meu trabalho tem cada comando SQL "sem noção"...

Hehehe! x)

izzystradlin
Veterano
# nov/07
· votar


legal...essa consulta tem quase todos os comandos que aprendi em SQL...

AND 2 , DATE_FORMAT( DATE_SUB( NOW( ) , INTERVAL 7DAY ) , '%u%/%Y' ) , DATE_FORMAT( NOW( ) , '%u%/%Y' ) ) ))

com datas então ficou muito foda...

ROTTA
Veterano
# nov/07
· votar


Sam
O regexp é para jogar para o final as bandas que usavam de artifícios para ficarem primeiro nas listagens por ordem alfabética.

Esta parte foi uma sacada...
Parabéns, pequeno gafanhoto! =)
Abraços.

Sam
Moderador
# nov/07 · Editado por: Sam
· votar


Simonetti
sobrevivente
Já vi muito pior...

Cada um tem o castigo que merece! =D

The Blue Special Guitar
Isso é POG ou é impressão minha?

tipo =)

Irmao_Caminhoneiro_Shell
Veterano
# nov/07
· votar


Sam
Acho de grande valor para a busca

Irmao_Caminhoneiro_Shell
Veterano
# nov/07
· votar


Sam
mas confesso que só entrei no topico por ter lido

"Consultora de SQL mais cavala que já vi"

gsprs
Veterano
# nov/07
· votar


Já ví piores... O.o

gsprs
Veterano
# nov/07
· votar


Isso é POG ou é impressão minha?

tipo =)

haaaaahha

o q seria de nós sem isso...

GuitarHouse
Veterano
# nov/07
· votar


Não fazia idéia do que é POG.

Mas seus e meus pobrema se acabaram-se

lula_molusco
Veterano
# nov/07
· votar


The Blue Special Guitar
eauaehueaua
injection é foda. dá pra estragar mta coisa =X haha

Planeduck
Veterano
# nov/07
· votar


THEN "9999999" = POG

Izzy Dragon
Veterano
# nov/07
· votar


Sam

Eu nem sabia que o MySQL aceitava esses "if" e "case".

Tá usando qual versão?

fgr
Veterano
# nov/07
· votar


Se eu entendi o lance das posições e destaques, não seria melhor criar um campo na tabela pra alocar as posições, colocações e etc com um valor fixo ao invés de criar valores subentendidos como o 9999999 e o 9999998?

Devo ter falado besteira mas tudo bem, só queria compartilhar desse momento rsrsrs Abração ae..

Sam
Moderador
# nov/07 · Editado por: Sam
· votar


Izzy Dragon
Confidencial =(

Mas isso é recurso velho =)

fgr
O problema é que as posições variam toda semana. Daí, pra não ficar gravando registro de banda que não teve visita (e consequentemente lotando o banco), optamos por usar esse recurso aí =)

Perceba que tb há a questão da banda ter sido ou não destaque na capa... se foi e não tem visita, é 999998... daí fica na frente das que não foram nada (99999)...

_Douglas_
Veterano
# nov/07
· votar


Com certeza já vi coisa muito pior que isso onde trabalhava....Tinha procedure lá que tinha mais de 1000 linhas fácil.....tudo em cima de tabela com uns 300 mil registros....

Rodava de madrugada e levava umas 4 horas rodando....

=)

Sam
Moderador
# nov/07 · Editado por: Sam
· votar


_Douglas_
Rodava de madrugada e levava umas 4 horas rodando....
Quero ver rodar em meio segundo que nem essa aí. =)

300 mil registros
isso é pouco, veja o fórum com milhões de posts.. trocentas queries por segundo =)

mas o que é que essa de mil linhas fazia? =P

_Douglas_
Veterano
# nov/07
· votar


Sam
Confidencial



Heheheheh....

Sam
Moderador
# nov/07
· votar


normal ;)

_JCM_
Veterano
# nov/07
· votar


POG

um pedal??????????

gsprs
Veterano
# nov/07
· votar


Certa vez fiz um bagulho no Zim que levou 8 horas pra rodar..

Esses tempos refiz no SQLServer e levou 40 minutos


AUSHuaSashasuahs

gsprs
Veterano
# nov/07 · Editado por: gsprs
· votar


*maldito post duplo*

Benva
Veterano
# nov/12
· votar


Up para quem quiser fazer uma pesquisa assim como a do Palco Mp3.

Abrassos pro manolo Sam. Copiei tudo, mesmo não entendendo porra nenhuma.

Enviar sua resposta para este assunto
        Tablatura   
Responder tópico na versão original
 

Tópicos relacionados a a consulta SQL mais cavala que já vi (para os programadores informáticos)