#Este é um post fechado Este post está disponível para assinantes da SQL Magazine DIGITAL ou para quem possui Créditos DevMedia. Clique aqui para saber mais sobre como abrir este post!
Utilizando o MySQL Partitioning - SQL Magazine 75
Este artigo trata dos recursos relacionados com o particionamento de tabelas com a finalidade de se obter melhor desempenho de bases de dados no MySQL, fornecendo ao leitor, nessa primeira parte do artigo, uma visão prática do recurso com base na sua aplicação em ambiente empresarial.
SQL Magazine 75
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da SQL Magazine 75
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da SQL Magazine 75
BRK##: 0 - 0
Utilizando o MySQL Partitioning
Priorize performance para os sistemas que dão suporte aos negócios em sua empresa
Há algum tempo, a mais nova versão do servidor de bancos de dados MySQL foi publicada no site oficial do produto como sendo uma versão Generally Available Release, ou somente GA, que significa que o produto já foi testado o bastante e que foi considerado pela equipe de homologadores como estável, embora pequenos bugs ainda sejam observados. Com isso, vários novos recursos foram lançados juntamente com a nova versão, tais como melhor controle sobre transações ou novas declarações sintáticas para levantar erros e melhor tratá-los com base no SQLSTATE. O SQLSTATE (Nota DevMan 1) é uma sequência de caracteres que indica que algum tipo de erro aconteceu com uma manipulação de dados dentro do servidor MySQL. Este tipo de erro poderá se apresentar como um Error, um Warning ou ainda um Not Found.
Nota DevMan 1. SQLState
SQLSTATE fornece códigos de retorno em caso de sucesso, alerta e condições de erro encontrados em um banco de dados. Os valores SQLSTATE são particularmente úteis quando estamos lidando com erros em instruções SQL. Esses valores são consistentes com a especificação SQLSTATE contida no padrão SQL 1999.
Um valor SQLSTATE é um código de retorno que indica o resultado da instrução SQL mais recente que foi executada. O mecanismo usado para acessar os valores SQLSTATE depende de onde a instrução SQL é executada.
O MySQL possui uma função chamada mysql_sqlstate() [cuja sintaxe é const char *mysql_sqlstate(MYSQL *mysql)] que retorna uma string contendo o código do erro SQLSTATE para as instruções SQL mais recentes que foram executadas.
O código de erro consiste de 5 caracteres. '00000' significa “sem erro”. Os valores são especificados por ANSI SQL e ODBC. Para uma lista de todos os possíveis valores, acesse o link http://dev.mysql.com/doc/refman/5.0/en/error-handling.html.
O valor de SQLSTATE retornado pela função mysql_sqlstate() é diferente do número de erro específico do MySQL retornado pela função mysql_errno(). Por exemplo, o programa de cliente do mysql exibe um erro usando o seguinte formato, onde 1146 é o valor de mysql_errno() e '42S02' é o valor correspondente da função mysql_sqlstate().
shell> SELECT * FROM no_such_table;
ERROR 1146 (42S02): Table 'test.no_such_table' doesn't exist
Nem todos os números de erros do MySQL são mapeados para códigos de erro do SQLSTATE. O valor 'HY000' (erro geral) é usado para números de erros não mapeados.
No entanto, o recurso desenvolvido por Mikael Ronstrom (MySQL Architect and Lead Developer) que mais agradou a "gregos e troianos" pela dinâmica e melhoria de desempenho relacionado com a leitura e escrita de dados em tabelas no MySQL foi o recurso de particionamento de tabelas, denominado MySQL Partitioning, que é muito comentado pela comunidade em geral e também pelos próprios membros do MySQL Developer Team.
Neste artigo, conheceremos um pouco mais sobre o recurso de particionamento do MySQL (MySQL Partitioning), os diferentes tipos de particionamento que podem ser criados e também como criar subparticionamentos, possibilitando a isão de particionamentos em diferentes discos.
Visão Geral do MySQL Partitioning
O MySQL Partitioning está disponível a partir da versão 5.1 do MySQL. Tal recurso funciona para vários Storage Engines (ver Nota DevMan 2), exceto para MERGE, CSV e FEDERATED. Ele funciona como um plugin e na verdade é também um engine, chamado de partition engine, localizado na primeira camada do MySQL juntamente com outros módulos como parser, optimizer, transformation, etc.
Nota DevMan 2. Storage Engines no MySQL
O MySQL possui um conceito chamado storage engines (motor de armazenamento) ou simplesmente tipos de tabela. Assim, o servidor e o desenvolvedor podem escolher como e onde uma tabela de banco de dados será armazenada e qual storage engine seria mais adequado para uma situação particular.
Para determinar quais storage engines seu servidor MySQL suporta, podemos usar o comando SHOW ENGINES. O valor da coluna Support indica se um engine pode ser usado. Um valor de YES, NO, ou DEFAULT indica que um engine está disponível, não disponível ou disponível e configurado atualmente como o storage engine padrão. Veja o exemplo a seguir:
mysql> SHOW ENGINES\G
*************************** 1. row ***************************
Engine: FEDERATED
Support: NO
Comment: Federated MySQL storage engine
Transactions: NULL
XA: NULL
Savepoints: NULL
*************************** 2. row ***************************
Engine: MRG_MYISAM
Support: YES
Comment: Collection of identical MyISAM tables
ATENÇÃO! A exibição deste artigo foi interrompida.
#Este é um post fechado
Este post está disponível para assinantes da SQL Magazine DIGITAL ou para quem possui Créditos DevMedia. Clique aqui para saber mais sobre como abrir este post!
Utilizando o MySQL Partitioning
Priorize performance para os sistemas que dão suporte aos negócios em sua empresa
Há algum tempo, a mais nova versão do servidor de bancos de dados MySQL foi publicada no site oficial do produto como sendo uma versão Generally Available Release, ou somente GA, que significa que o produto já foi testado o bastante e que foi considerado pela equipe de homologadores como estável, embora pequenos bugs ainda sejam observados. Com isso, vários novos recursos foram lançados juntamente com a nova versão, tais como melhor controle sobre transações ou novas declarações sintáticas para levantar erros e melhor tratá-los com base no SQLSTATE. O SQLSTATE (Nota DevMan 1) é uma sequência de caracteres que indica que algum tipo de erro aconteceu com uma manipulação de dados dentro do servidor MySQL. Este tipo de erro poderá se apresentar como um Error, um Warning ou ainda um Not Found.
Nota DevMan 1. SQLState
SQLSTATE fornece códigos de retorno em caso de sucesso, alerta e condições de erro encontrados em um banco de dados. Os valores SQLSTATE são particularmente úteis quando estamos lidando com erros em instruções SQL. Esses valores são consistentes com a especificação SQLSTATE contida no padrão SQL 1999.
Um valor SQLSTATE é um código de retorno que indica o resultado da instrução SQL mais recente que foi executada. O mecanismo usado para acessar os valores SQLSTATE depende de onde a instrução SQL é executada.
O MySQL possui uma função chamada mysql_sqlstate() [cuja sintaxe é const char *mysql_sqlstate(MYSQL *mysql)] que retorna uma string contendo o código do erro SQLSTATE para as instruções SQL mais recentes que foram executadas.
O código de erro consiste de 5 caracteres. '00000' significa “sem erro”. Os valores são especificados por ANSI SQL e ODBC. Para uma lista de todos os possíveis valores, acesse o link http://dev.mysql.com/doc/refman/5.0/en/error-handling.html.
O valor de SQLSTATE retornado pela função mysql_sqlstate() é diferente do número de erro específico do MySQL retornado pela função mysql_errno(). Por exemplo, o programa de cliente do mysql exibe um erro usando o seguinte formato, onde 1146 é o valor de mysql_errno() e '42S02' é o valor correspondente da função mysql_sqlstate().
shell> SELECT * FROM no_such_table;
ERROR 1146 (42S02): Table 'test.no_such_table' doesn't exist
Nem todos os números de erros do MySQL são mapeados para códigos de erro do SQLSTATE. O valor 'HY000' (erro geral) é usado para números de erros não mapeados.
No entanto, o recurso desenvolvido por Mikael Ronstrom (MySQL Architect and Lead Developer) que mais agradou a "gregos e troianos" pela dinâmica e melhoria de desempenho relacionado com a leitura e escrita de dados em tabelas no MySQL foi o recurso de particionamento de tabelas, denominado MySQL Partitioning, que é muito comentado pela comunidade em geral e também pelos próprios membros do MySQL Developer Team.
Neste artigo, conheceremos um pouco mais sobre o recurso de particionamento do MySQL (MySQL Partitioning), os diferentes tipos de particionamento que podem ser criados e também como criar subparticionamentos, possibilitando a isão de particionamentos em diferentes discos.
Visão Geral do MySQL Partitioning
O MySQL Partitioning está disponível a partir da versão 5.1 do MySQL. Tal recurso funciona para vários Storage Engines (ver Nota DevMan 2), exceto para MERGE, CSV e FEDERATED. Ele funciona como um plugin e na verdade é também um engine, chamado de partition engine, localizado na primeira camada do MySQL juntamente com outros módulos como parser, optimizer, transformation, etc.
Nota DevMan 2. Storage Engines no MySQL
O MySQL possui um conceito chamado storage engines (motor de armazenamento) ou simplesmente tipos de tabela. Assim, o servidor e o desenvolvedor podem escolher como e onde uma tabela de banco de dados será armazenada e qual storage engine seria mais adequado para uma situação particular.
Para determinar quais storage engines seu servidor MySQL suporta, podemos usar o comando SHOW ENGINES. O valor da coluna Support indica se um engine pode ser usado. Um valor de YES, NO, ou DEFAULT indica que um engine está disponível, não disponível ou disponível e configurado atualmente como o storage engine padrão. Veja o exemplo a seguir:
mysql> SHOW ENGINES\G
*************************** 1. row ***************************
Engine: FEDERATED
Support: NO
Comment: Federated MySQL storage engine
Transactions: NULL
XA: NULL
Savepoints: NULL
*************************** 2. row ***************************
Engine: MRG_MYISAM
Support: YES
Comment: Collection of identical MyISAM tables
ATENÇÃO! A exibição deste artigo foi interrompida.
#Este é um post fechado Este post está disponível para assinantes da SQL Magazine DIGITAL ou para quem possui Créditos DevMedia. Clique aqui para saber mais sobre como abrir este post!

Você está em:
canal SQL
Publicidade
Wagner Bianchi
Space do autor
Wagner Bianchi é Tecnólogo em Gerenciamento de Bancos de Dados pela Faculdade Infórium de Tecnologia, Pós-Graduando em Administração Estratégica de Empresas (Executivo Jr.) pela Fundação Getúlio Vargas no Minas Business Institute, Consultor em Desenvolvimento de Sistemas pela INFODBA C&T, empresa on...
Space do autor

Estudo comparativo entre banco de dados IBM Informix e Microsoft SQL

0
0
Conheça os planos de créditos DevMedia e visualize esse post agora mesmo!