As razões mais comuns citadas para a escolha do MySQL como servidor de banco de dados incluem "é fácil de usar" e "é grátis". Entretanto, você sabia que o IBM Informix oferece uma edição com as mesmas qualidades e mais? O Informix Innovator-C Edition é um servidor de banco de dados Informix que fornece um ambiente de banco de dados robusto e potente, capaz de suportar as cargas de trabalho de produção mais exigentes. Esta edição fornece as funcionalidades de processamento de dados mais usadas, inclusive replicação de dados distribuídos, e opções para obter disponibilidade contínua de dados, como armazenamento em cluster e a grade flexível Informix, introduzida recentemente.
O Informix Innovator-C Edition oferece uma base sólida para o desenvolvimento de soluções on demand para online transaction processing (OLTP) de alto volume, e tempo de resposta de transações próximo de zero, com alta confiabilidade, baixo custo de administração e gerenciamento remoto de servidores Informix. O Informix Innovator-C Edition tem "qualidade profissional", mesmo assim, é fácil de usar e executa em uma ampla variedade de plataformas, incluindo as versões mais populares das plataformas Linux® e Microsoft® Windows® . A melhor parte é que o download e a implementação do Informix Innovator-C Edition são absolutamente grátis! A redistribuição requer um contrato de licença separado. O Informix Innovator-C Edition está pronto para download e uso para desenvolvimento, teste e cargas de trabalho de produção para os usuários finais, sem qualquer tarifa de licença.
Em termos de recursos, o MySQL 5.1 e o Informix Innovator-C Edition são semelhantes em vários aspectos, como tipos de dados suportados, procedimentos armazenados, funções, soluções de alta disponibilidade, hot backups, cold backups, procura de texto completa, índices, visualizações, e mais. O MySQL e o Informix Innovator-C Edition são semelhantes no que diz respeito à arquitetura de servidor dedicado baseada em encadeamento. Ambos os sistemas de banco de dados suportam chaves primárias juntamente com índices de chaves, que permitem acelerar as consultas e limitar as entradas. O Informix continua à frente no que diz respeito ao otimizador baseado em custo e na otimização de consultas complexas, alta simultaneidade e utilização de caixas grandes de SMP. O Informix também permanece à frente em áreas como armazenamento em cluster, replicação de dados e computação em grade.
Além do fato de o MySQL ser um produto de software livre, quais são as diferenças entre estes dois produtos de banco de dados, e qual deles é o melhor para você?
As diferenças entre estes dois bancos de dados se iniciam com a característica de software livre do MySQL, em oposição à estrutura patenteada do Informix. O MySQL é um mecanismo de banco de dados extensível, de armazenamento aberto. O MySQL tem sua origem na tradição do software livre, na qual o desenvolvimento de produtos segue o modelo "faça você mesmo" e "produção artesanal", ao passo que o Informix fornece diversos caminhos nomeados e comprovados para resolver problemas específicos. Entretanto, o Informix e o MySQL podem se integrar totalmente a várias linguagens de programação e a outras tecnologias baseadas na Web.
Ao contrário do que muitos acreditam, os servidores do MySQL nem sempre são grátis. O uso comercial do MySQL requer tarifas de licenciamento. Com a compra do MySQL pela Oracle, o futuro das tarifas de licenciamento do MySQL é incerto. A Oracle advertiu recentemente os clientes a respeito de aumentos de preço não especificados em um futuro próximo, e de planos para eliminar os dois planos de licenciamento de nível baixo, menos caros, para o banco de dados, adequados para organizações de pequeno porte, com orçamentos mais apertados. Consulte a seção Recursos para notícias sobre o possível aumento de custo da licença do MySQL.
A família de produtos Informix oferece edições "para compra" e "grátis". Essas edições são ajustadas, em termos de preço e funcionalidade, para preencher uma ampla variedade de requisitos para empresas de todos os tamanhos. As edições para compra do Informix oferecem alguns modelos de precificação com subcapacidade, dando a você a flexibilidade de comprar somente o que precisa para preencher seus requisitos de serviços de dados sem precisar se preocupar com a energia de processamento total do hardware no qual o Informix está instalado.
Independentemente da edição utilizada, o Informix tem uma arquitetura dinâmica escalável com desempenho, confiabilidade, facilidade de uso e disponibilidade incomparáveis. Em alguns casos, especialmente nas edições grátis, há restrições em relação à amplitude e profundidade da escalabilidade e funcionalidade disponíveis. Entretanto, o Informix Innovator-C Edition é um servidor de dados Informix com funcionalidade completa, que fornece um ambiente de banco de dados robusto e potente, e a funcionalidade de processamento de dados mais utilizada necessária.
Somente o argumento sobre software livre/patenteado já é um dos motivos mais importantes para que alguns usuários escolham um servidor de banco de dados, e não o outro. No entanto, há algumas diferenças no aspecto técnico. Por exemplo, o MySQL não oferece suporte integral para chaves estrangeiras, ou seja, não tem todos os recursos relacionais do Informix, que é um banco de dados relacional completo. Algumas versões do MySQL também não têm suporte integral para procedimentos armazenados — a maior desvantagem é o sistema MyISAM, que não suporta transações.
Em termos de desempenho, o Informix é claramente o líder, devido principalmente ao online transaction processing (OLTP) de alto volume, integração de aplicativos e a pequena ocupação de espaço, ao usar pouco espaço em disco, memória e CPU. Com um histórico comprovado de estabilidade e confiabilidade, o Informix é uma opção óbvia para varejistas, bancos e empresas de comunicações.
A força do MySQL é o fato de que a arquitetura "plug-in" possibilita os recursos extensíveis disponíveis a partir de outros servidores de banco de dados. E, talvez, esta também seja a maior desvantagem do MySQL. A maioria desses recursos é projetada para alguma funcionalidade "chamativa", que é frequentemente oferecida à custa de outros elementos indispensáveis. Nesse caso, o preço é a complexidade e os recursos atrapalham a memória e o armazenamento, o que geralmente prejudica o desempenho.
O MySQL fornece mecanismos de segurança simples e muito efetivos, mas é amplamente aceito que o modelo de segurança do MySQL não é tão elaborado quanto o de outros bancos de dados bastante conhecidos. A instalação padrão do MySQL, especificamente a senha de raiz vazia e a possível vulnerabilidade ao estouro de buffer, faz do servidor de banco de dados um alvo fácil para os ataques.
O Informix integra funções de segurança do sistema operacional para autenticação dos usuários e permissões de rede. A separação de funções divide a obrigação da segurança entre os administradores. A auditoria permite que o servidor de banco de dados registre as operações sensíveis realizadas pelos usuários e administradores, para analisar e identificar maus usos do sistema. O controle de acesso discricionário (DAC) é o mecanismo primário de controle de acesso, que possibilita o acesso a objetos de SQL usando privilégios e funções.
Em termos de recuperação, o Informix tem uma grande vantagem sobre o MySQL, que tende a ser um pouco limitado com a configuração do sistema MyISAM. Com o MyISAM, é obrigatório ter uma fonte de alimentação ininterrupta (UPS) se há necessidade de uma operação ininterrupta. Em caso de indisponibilidade de energia, corre-se o risco de distorção e perda de dados críticos em um banco de dados do MySQL. Com o Informix, a distorção de dados é muito improvável, já que os dados passam regularmente por diversos pontos de verificação. Além disso, o Informix mantém um registro do processo para que ocorra uma recuperação bem-sucedida, mesmo se o sistema encerrar inesperadamente.
Visão geral e comparação arquitetural
Há muitas diferenças significativas entre o Informix Innovator-C Edition e o MySQL. Vamos começar nos focando em alguns aspectos arquitetônicos fundamentais nos quais esses servidores de banco de dados divergem ou se assemelham. (Observação: no momento em que este artigo foi escrito, foram usadas as versões MySQL 5.1 e Informix Innovator-C Edition 11.7 para fins de comparação.
- Modelo arquitetônico
- O Informix Innovator-C Edition e o servidor de banco de dados MySQL usam uma arquitetura de servidor dedicado baseada em encadeamento.
- Acesso de armazenamento
- O Informix Innovator-C Edition usa o RSAM como o método de acesso de armazenamento.
- O banco de dados MySQL usa a arquitetura de armazenamento plugável.
- Modelo de espaço de tabela
- Os espaços de tabela do Informix Innovator-C Edition podem englobar diversos bancos de dados.
- O MySQL usa o espaço de tabela para os mecanismos de armazenamento InnoDB e NDB.
- Suporte para esquema
- O Informix Innovator-C Edition tem suporte preciso para esquema.
- O MySQL não tem suporte preciso para esquema. O esquema no MySQL pode ser considerado um banco de dados do MySQL.
- Diferenciação de maiúsculas e minúsculas nos nomes de objeto de banco de dados
- Com o Informix Innovator-C Edition, as tabelas e colunas não distinguem maiúsculas e minúsculas no UNIX e no Windows, e são armazenadas em caixa-baixa.
- O MySQL usa nomes com distinção de maiúsculas e minúsculas para bancos de dados, tabelas e colunas no Linux.
- Autenticação
- O Informix Innovator-C Edition realiza autenticação utilizando usuários/funções de banco de dados. Fornece controles de acesso e níveis de criptografia para todas as dimensões do banco de dados, incluindo linhas individuais, colunas, tabelas ou bancos de dados. Também é possível usar vários esquemas de segurança externos, como o sistema operacional, PAM, Kerberos, Active Directory, etc.
- O MySQL implementa autenticação no nível do banco de dados, e as senhas são criptografadas.
- Arquitetura de instâncias
- O Informix Innovator-C Edition fornece a flexibilidade de possuir várias instâncias do servidor de banco de dados em uma única máquina, e uma instância pode gerenciar diversos bancos de dados.
- Uma instância do MySQL gerencia diversos bancos de dados, e pode haver várias instâncias do MySQL na mesma máquina.
Figura 1 e Figura 2 descrevem diagramas arquitetônicos do MySQL e do Informix Innovator-C Edition. Desenhamos diagramas arquitetônicos referentes ao MySQL de acordo com o nosso conhecimento, após lermos diversos documentos. Se você encontrar uma discrepância, avise-nos para que possamos corrigi-la.
O MySQL e o Informix Innovator-C Edition usam uma arquitetura baseada em encadeamento. Uma instância de MySQL, como se pode ver em Figura 1, pode gerenciar diversos bancos de dados. Há um catálogo do sistema comum chamado INFORMATION_SCHEMA compartilhado por todos os bancos de dados MySQL em uma instância.
As instâncias do Informix Innovator-C Edition são semelhantes, mas incluem o catálogo do sistema, espaços de armazenamento, buffer pools, encadeamentos, etc.
Pode-se visualizar uma única instância com vários bancos de dados no MySQL e no Informix Innovator-C Edition. Quando há diversas instâncias de MySQL em uma máquina, e cada instância gerencia diversos bancos de dados, é possível migrar cada instância do MySQL como uma instância do Informix Innovator-C Edition.
Os mecanismos plugáveis de armazenamento são um dos recursos interessantes do MySQL. É possível escolher o mecanismo de armazenamento MyISAM, InnoDB, Archive, Federated, Memory, Merge, Cluster, NDB ou Custom. Cada mecanismo de armazenamento tem características diferentes, e é possível escolher um mecanismo de armazenamento em especial com base em requisitos específicos. Para fins de comparação, constatamos que o InnoDB é o mais próximo de um banco de dados relacional.
Figura 1. Visão geral da arquitetura e dos processos do MySQL
Um processo do servidor do MySQL (mysqld) pode criar vários encadeamentos:
- Um encadeamento global (por processo do servidor) é responsável por criar e gerenciar cada encadeamento de conexão do usuário.
- Cria-se um encadeamento para manipular cada nova conexão do usuário.
- Cada encadeamento de conexão também realiza autenticação e execução de consultas.
- No Windows, há um encadeamento de manipulador de canal nomeado que executa o mesmo trabalho que o encadeamento de conexão para solicitações de conexão ao canal nomeado.
- Um encadeamento de sinal trata os alarmes e força os tempos limites nas conexões que ficaram inativas por muito tempo.
- Aloca-se um encadeamento para tratar os eventos de encerramento.
- Há encadeamentos para tratar a sincronização dos servidores escravo e principal para a replicação.
- Os encadeamentos são usados para a limpeza de tabelas, tarefas de manutenção, etc.
O MySQL usa cache de dados, cache de registro, de chave, de nome do host e de privilégio para o armazenamento em cache e a recuperação de diversos tipos de dados usados por todos os encadeamentos que executam dentro do processo do servidor.
Além disso, o processo principal do MySQL (mysqld) tem encadeamentos para tratar atividades de gerenciamento de banco de dados como backup, restauração, controle de simultaneidade, etc.
O Informix Innovator-C Edition
Figura 2 fornece uma visão geral da arquitetura do Informix Innovator-C Edition. A arquitetura de servidor de banco de dados do Informix Innovator-C Edition se baseia em uma tecnologia avançada que usa de forma eficiente praticamente todos os recursos de software e hardware atuais. Conhecida como Dynamic Scalable Architecture (DSA), a arquitetura explora totalmente a energia de processamento disponível em ambientes de SMP, realizando tipos semelhantes de atividades de banco de dados, como E/S, consultas complexas, desenvolvimentos de índice, recuperação de log, inserções e backups/restaurações. A arquitetura de design da DSA inclui recursos integrados de multiencadeamento, componentes de memória compartilhada dinâmicos e com autoajuste, e possibilidades de armazenamento de dados lógico e inteligente, suportando o uso mais eficiente de todos os recursos do sistema disponíveis.
Os processos do Informix Innovator-C Edition são chamados de processador virtual (VP), pois seu funcionamento é semelhante ao da CPU em um computador. Da mesma forma que a CPU executa diversos processos de sistema operacional para atender a diversos usuários, o processador virtual do Informix executa diversos encadeamentos para atender a diversos aplicativos cliente de SQL.
O processador virtual é um processo que o sistema operacional programa para o processamento. Os processadores virtuais do Informix Innovator-C Edition são multiencadeados, pois executam diversos encadeamentos simultâneos. Figura 2 ilustra o relacionamento dos aplicativos clientes com os processadores virtuais. Um pequeno número de processadores virtuais atende a um número muito maior de aplicativos clientes ou consultas.
Em comparação com um processo de servidor de banco de dados que atende a um único aplicativo cliente, o caráter dinâmico e multiencadeado do Informix fornece as seguintes vantagens:
- Os processadores virtuais podem compartilhar o processamento.
- Os processadores virtuais poupam memória e recursos.
- Os processadores virtuais podem executar processamento paralelo.
- É possível iniciar processadores virtuais adicionais e terminar processadores virtuais ativos da CPU enquanto o servidor de banco de dados está executando.
- É possível ligar processadores virtuais a CPUs.
O processador virtual executa encadeamentos em nome de aplicativos clientes de SQL (encadeamentos de sessão), e também para preencher requisitos internos (encadeamentos internos). Na maioria dos casos, para cada conexão de um aplicativo cliente, o Informix executa um encadeamento sqlexec. O Informix executa encadeamentos internos para realizar, entre outras coisas, E/S de banco de dados, E/S de criação de log, limpeza de páginas e tarefas de administração.
O encadeamento de usuários é um encadeamento do servidor de banco de dados que atende a solicitações de aplicativos clientes. Os encadeamentos de usuários incluem encadeamentos de sessão, chamados encadeamentos sqlexec, os encadeamentos primários que o servidor de banco de dados executa para atender a aplicativos clientes.
Figura 2. Visão geral da arquitetura e dos processos do Informix Innovator-C Edition
Comparação dos limites de tamanho de dados
Tablela 1 compara os limites de tamanho de dados do MySQL e do Informix Innovator-C Edition. Esta lista não está completa, mas mostra algumas das limitações mais perceptíveis.
Tablela 1. Limites de tamanho de dados do MySQL e do Informix
| MySQL | Informix Innovator-C Edition | |
|---|---|---|
| Tamanho máx. do banco de dados | Ilimitado | 128 PB |
| Tamanho máx. da tabela | Limites de armazenamento do MyISAM: 256 TB Limites de armazenamento do Innodb: 64 TB | 128 PB |
| Tamanho máx. da linha | 64 KB¹ | 32765 bytes (não incluindo os objetos grandes) |
| Núm. máx. de colunas por linha | 4 KB² | 32765 bytes |
| Tamanho máx. do BLOB/CLOB | 4 GB | 4 TB |
| Tamanho máx. de CHAR | 64 KB (texto) | 32765 bytes |
| Tamanho máx. de NUMBER | 64 bytes | 10^32 |
| Valor mín. de DATE | 1000 | 31/12/1900 |
| Valor máx. de DATE | 9999 | 31/12/9999 |
1. O InnoDB está limitado a 8000 bytes (não incluindo VARBINARY, VARCHAR, BLOB e colunas de TEXT).
2. O InnoDB está limitado a 1000 colunas.
Este artigo descreveu diversas diferenças de arquitetura entre o MySQL e o Informix, e mostrou algumas diferenças entre as duas tecnologias do banco de dados. A Parte 2 desta série será um tutorial que repassa o processo real da migração. Com um planejamento adequado e a familiarização com o Informix, é possível preparar-se rapidamente para usar uma plataforma de banco de dados sofisticada, escalável e de alto nível: aproveite os benefícios do Informix!
Aprender
-
Informix Innovator-C Edition: saiba mais sobre o Informix
Innovator-C Edition.
-
Centro de Informações do IBM Informix Dynamic Server v11.70: Saiba mais sobre o Informix. Encontre as informações necessárias para usar os produtos e recursos Informix.
- "Informix Dynamic Server 11: Advanced Functionality for Modern Business" (IBM Redbooks, outubro de 2007): Obtenha uma visão geral do Informix Dynamic Server 11.
- "Migrating from Microsoft SQL Server to IBM Informix" (IBM Redbooks, julho de 2010): entenda as considerações e explore uma metodologia para executar a transição do Microsoft SQL Server 2008 para o Informix Dynamic Server.
- "MySQL Restrictions and Limitations" (Oracle, 2011): entenda as restrições que se aplicam ao uso dos recursos do MySQL, como subconsultas e visualizações.
-
Comparison of relational database management system (Wikipédia):
encontre informações gerais e técnicas referentes a vários sistemas de gerenciamento de banco de dados relacional.
- "Migrar do MySQL ou PostgreSQL para o DB2 Express-C"
(developerWorks, junho de 2006): passe para o DB2 em três etapas fáceis.
- "Oracle to eliminate budget plans in MySQL license hike"
(InfoWorld, outubro de 2010): saiba mais sobre o possível aumento de preço das tarifas de licenciamento.
- "IBM Migration Toolkit support for migrating data from MySQL to DB2
and Informix" (developerWorks, julho de 2008): saiba como esse kit de ferramentas pode ajudá-lo a migrar as instruções DDL e DML e veja como mapear tipos de dados.
- zona de Information Management do developerWorks: Saiba mais sobre o Information Management. Encontre documentação técnica, artigos com instruções, educação, downloads, informações sobre produtos e mais.
- Fique por dentro doseventos técnicos e webcasts do developerWorks
.
Obter produtos e tecnologias
-
IBM Migration Toolkit: saiba mais sobre essa ferramenta fácil de usar (ou obtenha a ferramenta), que permite migrar seus dados de uma ampla variedade de bancos de dados de origem para o DB2 ou o Informix, independentemente da plataforma.
- Crie seu próximo projeto de desenvolvimento com o Versão de testes do software IBM,
disponível para download diretamente no developerWorks.
Discutir
- Participe dos blogs do developerWorks
e participe da
comunidade do developerWorks; com seu perfil pessoal e página inicial personalizada é possível modelar o developerWorks de acordo com seus interesses e interagir com outros usuários do
developerWorks.
Sanjit Chakraborty é membro da equipe Down System and Diagnostics para o suporte técnico do IBM Informix Technical Support, responsável pela manipulação de situações críticas do cliente e pelo desenvolvimento de ferramentas de suporte para uso da organização de suporte técnico. Sanjit trabalha há mais de 15 anos no segmento de mercado de tecnologia da informação, em várias funções. É administrador do sistema certificado pela IBM para Informix e DB2 e especialista designado no assunto de arquivamento. Sanjit desenvolveu diversos recursos do Informix e ferramentas de Down System Support. Também é autor e revisor técnico de um grande número de artigos técnicos, tutoriais e materiais para cursos de treinamento sobre diversos tópicos do Informix.