Ir para conteúdo
Fórum Script Brasil

Felipe Basso

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre Felipe Basso

Felipe Basso's Achievements

0

Reputação

  1. Bom dia pessoal, Estou dando uma lida sobre particionamento de Tabelas utilizando o MySQL para que eu possa colocá-la em prática aqui na empresa. Entendi que há algumas formas de criar o particionamento partir das novas versões do MySQL, sendo elas: Key, Range, Date, etc. Uma dúvida ?!?! Criei a Tab1 com particionamento por Year of Date .. da seguinte forma: CREATE TABLE tab1 ( id int not null, nome char(50) not null, data datetime not null ) ENGINE = MyISAM PARTITION BY RANGE(YEAR(data)) ( PARTITION p0 VALUES LESS THAN(2000), PARTITION p1 VALUES LESS THAN(2001), PARTITION p2 VALUES LESS THAN(2002), PARTITION p3 VALUES LESS THAN(2003), PARTITION p4 VALUES LESS THAN(2004), PARTITION p5 VALUES LESS THAN(2005), PARTITION p6 VALUES LESS THAN(2006), PARTITION p7 VALUES LESS THAN(2007), PARTITION p8 VALUES LESS THAN(2008), PARTITION p9 VALUES LESS THAN(2009), PARTITION p10 VALUES LESS THAN(2010), PARTITION p11 VALUES LESS THAN(MAXVALUE) ); Quando eu fiz uma carga de 10.000 Registros comparando a Tab1 com a Tab2 (que não havia particionamento) os tempos foram: Tab1 = 00:00:18 e Tab2 : 00:06:51. Ao pesquisar, li que se eu fizer um SELECT usando um BETWEEN para o campo DATA, na Tab1 ele lê somente os registros conforme os anos dos parâmetros que eu passar, enquanto a Tab2 irá ler a tabela inteira para buscar os registros que atendam. Com isso o ganho de performance. Porém se eu fizer um SELECT com qualquer outro filtro que não seja do campo DATA, ele irá ler a tabela inteira tanto Tab1 como Tab2. Há alguma forma de eu criar outros particionamentos para a Tab1, ou seja, pelo campo DATA conforme exibido acima e pelo campo ID por ex:.? Abs.
×
×
  • Criar Novo...