Trabalhando na prática com partições no MySQL 5.1

Este artigo explica como avaliar o desempenho de um banco de dados com muitos registros no MySQL 5.1, apresentando as vantagens do uso de partições.

Esse artigo faz parte da revista SQL Magazine edição 54. Clique aqui para ler todos os artigos desta edição

Clique aqui para ler esse artigo em PDF

 

MySQL

Trabalhando na prática com partições no MySQL 5.1

 

Este artigo explica como avaliar o desempenho de um banco de dados com muitos registros no MySQL 5.1, apresentando as vantagens do uso de partições.

O banco de dados de teste a ser utilizado neste artigo utiliza dados publicados pela Secretaria de Estatísticas de Transporte dos Estados Unidos (http://www.bts.gov/). Até 2007, os dados consistiam em aproximadamente cerca de 113 milhões de registros (7.5 GB de dados + 5.2 GB de índice).

Obtendo e carregando os dados

Os dados para este artigo foram obtidos da Secretaria de Estatísticas de Transporte (http://www.transtats.bts.gov/Tables.asp?DB_ID=120&DB_Name=Airline%20On-

Time%20Performance%20Data&DB_Short_Name=On-Time). Os dados estão disponíveis como um arquivo CSV para download. Os detalhes de sua obtenção, configuração da estrutura dos dados e carregamento dos dados são explicados na Nota DevMan 1.

 

Nota DevMan 1. Criando o banco de dados

Objetivo

Testes de desempenho ou de novas funcionalidades normalmente requerem uma grande coleção de dados.  Criar tais dados nem sempre é uma opção. Você pode facilmente gerar registros de dados através de repetição, mas isso não é o mesmo que utilizar dados vindos do mundo real. Nessa nota será explicado como obter dados de uma grande coleção de dados a partir de uma fonte confiável.

 

Requisitos do sistema

As instruções nesta nota são compatíveis para um SO Unix. Elas têm sido testadas em diferentes opções de Linux e no Mac OS X 10.4.

Construir o banco de dados de teste requer alguma capacidade de armazenamento. Dependendo da máquina que você escolher, os requisitos de armazenamento variam entre 2 e 17 GB.

 

O exemplo apresentado a seguir utiliza um buffer de memória dedicada de 2 GB.

 

Fonte

Os arquivos usados para este artigo são providos pela Secretaria de Estatística de Transportes. Os dados estão empacotados como arquivos CSV. Para obter estes dados, você pode utilizar o script:

 

#!/bin/sh

mkdir flightstats

cd flightstats

 

BASE_NAME=On_Time_On_Time_Performance

BASE_URL="http://transtats.bts.gov/Download/$BASE_NAME"

 

Y=1987

for M in `seq 7 12`

do

  echo $M

  wget $_$_$.zip

done

 

for Y in `seq 1988 2006`

do

  echo $Y

  for M in `seq 1 12`

  do

echo $M

wget $_$_$.zip

  done

done

 

Y=2007

for M in `seq 1 7`

  do

echo $M

wget $_$_$.zip

done

 

Criando a estrutura de dados

A descrição da tabela para os arquivos baixados inclui 57 campos. Desses, apenas 14 foram usados para a tabela de teste.

 

create table flightstats (

AirlineID int not null,

UniqueCarrier char(3) not null,"

[...] continue lendo...
Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados