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

MySQL-partitionering:hvorfor det ikke tager passende partition

HASH-partitioneringsskemaet betyder, at MySQL oversætter din vilkårlige numeriske værdi til sin egen hashværdi. Du har defineret 366 partitioner. Hvad tror du, der ville ske, hvis din forespørgsel var:

FORKLARING AF PARTITIONER SELECT * FROM temp hvor PartitionID =400?

Dit partitions-ID kan i dette tilfælde ikke betyde den rigtige partitions ID/navn, da der ikke er nogen partition 400.

Nu, bare mellem os to, kan du være interesseret i at lære, at MySQL's HASHing-funktion er et simpelt modul. 0 tilknyttes partition p0, 1 tilknyttes partition p1 og 400 tilknyttes partition 34 (==400-366).

Generelt bør du ikke være for interesseret i identifikationen af ​​den bestemte partition, der bruges. Du burde være mere interesseret i at vide, at der er en god balance mellem partitioner.

Hvis saldoen ikke virker rigtig for dig, kan du overveje at bruge KEY-partitioneringsskemaet, hvor hashing-algoritmen er baseret på en checksum-funktion, hvilket betyder, at værdier er mere "tilfældigt" spredt sammenlignet med HASH-modulopdelingsskemaet.




  1. Spørgsmål om iPhone emoji og websider

  2. SQL datoformat

  3. SQL vælg elementer, hvor summen af ​​feltet er mindre end N

  4. MySQL arbejder med 127.0.0.1, men arbejder ikke med localhost?