[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OFF] comparação entre SQLs



On 3/22/07, Maxwillian Miorim <miorimmax@gmail.com> wrote:
On 3/21/07, Rúben Lício <rubenlr@gmail.com> wrote:
> Boa noite,
>
> Eu não tenho gráficos, mas recentemente em aula, eu mostrei para os alunos
> um exemplo de como o mysql é rápido.
> fiz um script para inserir 100mil registros.
> demorou cerca de 5s para executar.
>
>  Para testar o select, eu deixei 3milhões de registros em uma tabela com 3
> colunas e 1 auto increment.
> Um select um campo int sem indexar levou cerca de 400ms para ser executado,
> depois indexei o campo e passou a demorar 20ms para ser executado.
Eu acho este o maior erro dos testes disponíveis atualmente, tanto
INSERT, UPDATE, DELETE e SELECT devem ser testados simultaneamente e
não um por vez, afinal na realidade o banco não executa uma operação
por vez e sim todas. Se puder fazer algo com threads (ai PHP não é tão
util quanto se pensa...) fazendo estas operações assincrona e
randomicamente com dados que possam se assemelhar com a realidade ai
tem um resultado preciso, senão pode ser uma decepção.

Outra coisa importante é dizer a _storage engine_ utilizada no MySQL,
MyISAM, InnoDB, Memory e etc. Cada uma tem seus pontos fortes e
fracos, minha dica para sistemas de grande tráfego de dados é o
InnoDB, que faz um lock por registro ao contrário do MyISAM que trava
a tabela.

Nesses testes foram usados MyISAM.
Interessante a idéia dos testes utilizando-se de tudo. Normalmente
faço separado por testa de performance individual, mas realmente, pode
acontecer surpresas na hora do vamos ver.
Mas esse não foi um teste científico, foi apenas algo rápido só para
demonstrar que funciona bem.



> Eu, sinceramente, dúvido que o MySQL não aguente. O postgres também aguenta.
Ambos aguentam, mas não depende só do banco, há coisas como o SO que
interferem *e muito* nisso.


> O cara que disse que é necessário um SQLServer, provavelmente está
> insatisfeito porque vocês usam linux e ele não é capaz de aprender linux. SE
> o trafego realmente necessitasse de muito, mas muito mesmo, o suficiente
> para o postgres não aguentar, não seria o SQL Server que aguentaria.
Discordo em parte. O SQL Server é um dos poucos produtos da Microsoft
que eu já usei e gostei (o outro é o Visio :), para mim o problema de
usar o SQL Server é ter de usar exclusivamente Windows. Mas eu
acredito que tanto Postgres quanto MySQL estão no msmo nível que o SQL
Server e o Oracle em nível de SGDBs. Todos que citei tem suas
vantagens e desvantagens, cabe a cada um fazer a sua escolha por
questões técnicas e não "eu uso o bando ABCD porque eu gosto mais
dele". ;)

Não que seja um péssimo produto, pelo contrário, comparando-se com os
demais da microsoft, é um dos melhores. Mas o problema de rodar apenas
em windows é grande, eu não usaria ele em um site porque simplesmente
não confio no windows como servidor. Por mais que seja uma versão
server, eu ainda acho muito vulnerável e instável.

> Agora, sinceramente, eu acho que não é você que tem que provar que o MySQL
> aguenta, afinal, ela já está rodando e funcionando bem. E segundo tudo
> indica, isso não vai mudar. Se o cara realmente acha que o MySQL é ruim,
> porque ele não prova que vocês precisaram do SQL Server? Acredito que ele
> deve ter ouvido falar, ou no máximo lido que o SQL Server é o melhor. Então,
> não vejo porque você também não pode ter ouvido falar que o MySQL é melhor.
Não é bem assim que as coisas funcionam... Se ele mostrar que o MySQL
supre as necessidades da Universidade pode conseguir (não somente para
ele, mas para outros interessados) mais fundos para uma eventual
pesquisa cujo tema é aumento de performance ou alguma outra
necessidade da Universidade. Comprovando que o SGDB livre se saiu tão
bem ou melhor que os proprietários com certeza ajuda o projeto, seja
com um simples case ou com o apoio mais "técnico" que disse
anteriormente. ;)

O problema é se, a cada vez que alguém vir com uma história de que o
que está rodando não vai funcionar, ele tiver que fazer testes e
pesquisar a fundo para demonstrar que funciona, ficará o resto da vida
tendo que provar que o que funciona, funciona mesmo. Para algo merecer
ser revisto, ou tem de ter demonstrado problemas, ou algo real ter
acontecido relevante ter surgido, como anúncios de bugs, ou falhas em
outras empresas que tem um volume semelhante de dados...

> Lembrando que, usar o SQL Server implica em usar um servidor windows. E,
> sinceramente, querer alta disponibilidade em windows, é muito mais difícil
> que em linux. Quando a segurança do sistema se mostrar necessário, ele vai
> customizar o kernel do windows para fechar possíveis locais de invasão?
Uh, isso é relativo e fede a flame war... Já vi linux tão ou mais
"arregassados" que o Windows ME, como já disse, segurança e
disponibilidade são recursos do *administrador* e não do SO. :D

> Eu sei que estou sendo um tanto agressivo com relação a isso, mas o ponto é
> que fico inconformado das pessoas acreditarem na palavra da M$ mesmo sem ela
> ser capaz de provar nada, e quando alguém de SL da uma responsta pensada,
> porque entende que deve ser coerente, é como se não tivesse um produto bom o
> suficiente. Quando na verdade, poderiamos mentir descaradamente igual a M$
> faz muitas vezes, mas não o fazemos porque a maioria de nós é ético e
> coerente o suficiente para entender as limitações do que está fazendo, e de
> divulgar informações reais e não meros números para marketing.
Mais um motivo para ele provar que o MySQL dá conta das necessidades
deles. Não existe melhor "get the facts" que um case de sucesso. ;)

sim, nada melhor do que os fatos para provar algo.

--
Rúben Lício Reis

Linux Game Developer
Linux user #433535

Reply to: