Mysql
 sql >> Database >  >> RDS >> Mysql

Partizionamento MySQL:perché non sta prendendo la partizione appropriata

Lo schema di partizionamento HASH significa che MySQL traduce il tuo valore numerico arbitrario nel proprio valore hash. Hai definito 366 partizioni. Cosa pensi accadrebbe se la tua domanda fosse:

SPIEGARE PARTIZIONI SELEZIONA * DA temp dove PartitionID =400?

Il tuo PartitionID non può significare in questo caso l'ID/nome della partizione reale, poiché non esiste la partizione 400.

Ora, solo tra noi due, potresti essere interessato a sapere che la funzione HASHing di MySQL è un semplice modulo. Pertanto, 0 esegue il mapping alla partizione p0, 1 esegue il mapping alla partizione p1 e 400 esegue il mapping alla partizione 34 (==400-366).

In generale, non dovresti essere troppo interessato all'identificazione della particolare partizione utilizzata. Dovresti essere più interessato a sapere che esiste un buon equilibrio di partizioni.

Se l'equilibrio non ti sembra giusto, potresti prendere in considerazione l'utilizzo dello schema di partizionamento KEY, in cui l'algoritmo di hashing si basa su una funzione di checksum, il che significa che i valori sono distribuiti in modo più "casuale" rispetto allo schema di partizionamento del modulo HASH.