Bem, após o grande bla bla bla sobre o futuro do MySQL o nosso bom e parrudo gerenciador de banco de dados ainda sobrevive, O MySQL 5.5 trouxe novos recursos e correções de alguns bugs existentes nas versões anteriores, um dos novos recursos é forma como o MySQL trata o particionamento agora mais flexível e intuitivo como aprenderemos a seguir.
Em primeiro lugar para quem nunca utilizou o particionamento de tabelas no MySQL saiba que isso é possível, podemos dividir em várias outras "tabelas lógicas" uma única tabela, porém antes do lançamento da versão 5.5 estávamos limitados ao particionamento apenas por campos numéricos se fosse necessário o uso de campos date ou strings tinhamos que lançar mão de funções e converter cada um dos tipos tratados, isso agora mudou. Vamos a um exemplo:
CREATE DATABASE part_exemplo; USE part_exemplo;
CREATE TABLE despesas (
data DATE NOT NULL,
categoria VARCHAR(30),
valor DECIMAL(10,2)
);
Após incluirmos alguns registros, poderíamos criar o particionamento já na criação da tabela, mas vamos fazer isso com esta já pronta e com alguns dados inseridos.
INSERT INTO despesas VALUES( '2010-01-03', 'alimentação', 500.50);
INSERT INTO despesas VALUES( '2010-01-04', 'combustível', 30);
INSERT INTO despesas VALUES( '2010-01-05', 'hospedagem', 210.50);
INSERT INTO despesas VALUES( '2010-01-06', 'comunicacao', 500.50);
INSERT INTO despesas VALUES( '2010-01-07', 'compra', 600.00);
INSERT INTO despesas VALUES( '2010-01-08', 'vestimenta', 300.30);
INSERT INTO despesas VALUES( '2010-01-09', 'manutenção', 120.50);
INSERT INTO despesas VALUES( '2010-01-10', 'software', 700.90);
Agora vamos criar a partição baseada nas colunas e utilizando o tipo LIST
ALTER TABLE despesas
PARTITION BY LIST COLUMNS (categoria)
(
PARTITION p0 VALUES IN ('alimentacao', 'combustivel'),
PARTITION p1 VALUES IN ('hospedagem', 'comunicacao'),
PARTITION p2 VALUES IN ('compra', 'vestimenta'),
PARTITION p3 VALUES IN ('manutencao', 'software')
);
Vejamos o resultado do nosso particionamente.
mysql> explain partitions select * from despesas\G
Esta query irá retornar se nossas partições estão criadas devidamente. Se você está seguindo nosso exemplo aqui terá que obter o seguinte resultado:
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: despesas
partitions: p0,p1,p2,p3
type: ALL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows: 8
Extra:
1 row in set (0.00 sec)
Ótimo! Não precisamos mais ter que usar complexas funções para converter dados do tipo não numéricos para utilizar o particionamento.
Nos próximos posts aprenderemos como utilizar colunas DATE nesta nova versão do MySQL 5.5 bem como vários novos recursos implementados. Até lá.
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.