Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-Partitionierung:Warum wird keine geeignete Partition verwendet?

Das HASH-Partitionierungsschema bedeutet, dass MySQL Ihren beliebigen numerischen Wert in seinen eigenen Hash-Wert übersetzt. Sie haben 366 Partitionen definiert. Was würde Ihrer Meinung nach passieren, wenn Ihre Abfrage wie folgt wäre:

EXPLAIN PARTITIONS SELECT * FROM temp where PartitionID =400?

Ihre PartitionID kann in diesem Fall nicht die ID/Name der echten Partition bedeuten, da es keine Partition 400 gibt.

Nun, nur unter uns beiden, es könnte Sie interessieren, dass die HASH-Funktion von MySQL ein einfaches Modul ist. Somit wird 0 der Partition p0, 1 der Partition p1 und 400 der Partition 34 (==400-366) zugeordnet.

Im Allgemeinen sollten Sie sich nicht zu sehr für die Identität der verwendeten Partition interessieren. Sie sollten mehr daran interessiert sein zu wissen, dass es eine gute Balance der Partitionen gibt.

Wenn Ihnen das Gleichgewicht nicht richtig erscheint, sollten Sie das KEY-Partitionierungsschema verwenden, bei dem der Hash-Algorithmus auf einer Prüfsummenfunktion basiert, was bedeutet, dass die Werte im Vergleich zum HASH-Modulus-Partitionierungsschema "zufälliger" verteilt sind.