Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Particionamento MySQL:por que não está tomando a partição apropriada


O esquema de particionamento HASH significa que o MySQL traduz seu valor numérico arbitrário em seu próprio valor de hash. Você definiu 366 partições. O que você acha que aconteceria se sua consulta fosse:

EXPLAIN PARTITIONS SELECT * FROM temp onde PartitionID =400?

Seu PartitionID não pode significar neste caso o ID/nome da partição real, pois não há partição 400.

Agora, apenas entre nós dois, você pode estar interessado em saber que a função HASHing do MySQL é um módulo simples. Assim, 0 mapeia para a partição p0, 1 mapeia para a partição p1 e 400 mapeia para a partição 34 (==400-366).

De um modo geral, você não deve estar muito interessado na identificação da partição específica que está sendo usada. Você deve estar mais interessado em saber que há um bom equilíbrio de partições.

Se o equilíbrio não parece certo para você, você pode considerar o uso do esquema de particionamento KEY, onde o algoritmo de hash é baseado em uma função de soma de verificação, o que significa que os valores são distribuídos mais "aleatoriamente" em comparação com o esquema de particionamento do módulo HASH.