Estou estudando a tecnologia oracle, as soluções são realmente interessantes principalmente com “oracle rac”.
Algumas coisas impressionam, como por exemplo, você está fazendo uma query usando um dos nós do cluster, se o servidor reboota, ou da algum problema, ele roteia automaticamente para o próximo nó e continua a query do ponto que parou, fizemos testes e de fato isso e real, a query para por alguns poucos segundos e depoi segue a execução normalmente.
Fiz um for simples em php para inserção de 10000 registros (sim tem maneiras melhor de inserir, mas era um teste simples) numa tabela chamada “teste” possuindo dois fields:
-> id int key –> sem auto-increment
-> reg varchar(50)
Trecho do código que usei para o for (em oracle)
for($i=1;$i<=10000;$i++)
{
$sql = "INSERT INTO country(id, pais) VALUES('".$i."', 'registro-".$i."')";
$oracle->query($sql);
}
Trecho do código em php
for($i=1;$i<=10000;$i++)
{
$sql = "INSERT INTO country(id, pais) VALUES('".$i."', 'registro-".$i."')";
mysql_query($sql, $link);
}
utilizei a função time() do php para medir o timestamp inicial e final, a diferença deles é o tempo da operação em segundos.
Resultados:
–> inicio e fim são timestamp, tempo total em segundos
Oracle:
INICIO: 1316194690
FIM: 1316194729
Tempo Total: 39
Espaço ocupado: 500kb
MySQL INNODB:
INICIO: 1316194769
FIM: 1316194772
Tempo Total: 3
Espaço ocupado: 416Kb
MySQL MyISAM:
INICIO: 1316194854
FIM: 1316194857
Tempo Total: 3
Espaço ocupado: 336.99Kb
Conclusão:
Foi um teste muito simples para afirmar qual é o melhor, mas podemos ver que para operações simples, o mysql é quase 10 vezes mais rápido e ocupa menos espaço em disco.
Porém é fato sabido que o mysql perde performance na medida em que a quantidade de dados vai crescendo, já no oracle, quando isto acontece ele se mantem estável (com perda mínima, ou sem de performance).