Quais são os fatores relacionados ao desempenho da consulta de tabela única no GaussDB(DWS)?
O GaussDB(DWS) usa a arquitetura do nada compartilhado, e os dados são armazenados de maneira distribuída. Portanto, a chave de distribuição, o volume de dados e o número de partições afetam o desempenho geral da consulta de uma única tabela.
- Design da chave de distribuição
Por padrão, o GaussDB(DWS) usa a primeira coluna da chave primária como chave de distribuição. Quando você define uma chave primária e uma chave de distribuição para uma tabela, a chave de distribuição deve ser um subconjunto da chave primária. As chaves de distribuição determinam a distribuição de dados entre partições. Se as chaves de distribuição forem bem distribuídas entre partições, o desempenho da consulta pode ser melhorado.
Se a chave de distribuição estiver selecionada incorretamente, a distorção de dados poderá ocorrer após a importação dos dados. O uso de alguns discos pode ser muito maior do que o de outros discos, e o cluster pode se tornar somente leitura em alguns casos extremos. A seleção adequada das chaves de distribuição é fundamental para o desempenho da consulta de tabela. Além disso, as chaves de distribuição adequadas permitem que os índices de dados sejam criados e mantidos mais rapidamente.
- Volume de dados armazenados em uma única tabela
Quanto maior a quantidade de dados armazenados em uma única tabela, pior o desempenho da consulta. Se uma tabela contém uma grande quantidade de dados, você precisa armazenar os dados em partições. Para converter uma tabela comum em uma tabela particionada, você precisa criar uma tabela particionada e importar dados para ela a partir da tabela comum. Ao projetar tabelas, planeje se usará tabelas particionadas com base nos requisitos de serviço.
Para particionar uma tabela, siga os seguintes princípios:
- Use campos com intervalos óbvios para particionamento, por exemplo, data ou região.
- O nome da partição deve refletir as características de dados da partição. Por exemplo, seu formato pode ser características de Keyword+Range.
- Defina o limite superior de uma partição para MAXVALUE para evitar excesso de dados.
- Número de partições
Tabelas e índices podem ser divididos em unidades menores e mais fáceis de gerenciar. Isso reduz significativamente o espaço de pesquisa e melhora o desempenho de acesso.
O número de partições afeta o desempenho da consulta. Se o número de partições for demasiado pequeno, o desempenho da consulta poderá deteriorar-se.
GaussDB(DWS) suporta particionamento de intervalos e particionamento de listas. No particionamento por intervalo, os registros são divididos e inseridos em várias partições de uma tabela. Cada partição armazena dados de um intervalo específico (intervalos em diferentes partições não se sobrepõem). O particionamento de lista é suportado apenas por clusters de 8.1.3 e versões posteriores.
Ao projetar um armazém de dados, você precisa considerar esses fatores e realizar experimentos para determinar o esquema de projeto ideal.