sql >> Database >  >> RDS >> Mysql

MySQL-partitionering:waarom neemt het geen geschikte partitie?

Het HASH-partitioneringsschema betekent dat MySQL uw willekeurige numerieke waarde vertaalt in zijn eigen hash-waarde. U hebt 366 partities gedefinieerd. Wat denk je dat er zou gebeuren als je vraag was:

UITLEG PARTITIES SELECTEER * FROM temp waar PartitionID =400?

Uw PartitionID kan in dit geval niet de ID/naam van de echte partitie betekenen, aangezien er geen partitie 400 is.

Nu, tussen ons tweeën, zou je misschien geïnteresseerd zijn om te horen dat de HASHing-functie van MySQL een eenvoudige modulus is. Dus 0 wordt toegewezen aan partitie p0, 1 wordt toegewezen aan partitie p1 en 400 wordt toegewezen aan partitie 34 (==400-366).

Over het algemeen zou u niet al te geïnteresseerd moeten zijn in de identificatie van de specifieke partitie die wordt gebruikt. Je zou meer geïnteresseerd moeten zijn om te weten dat er een goede balans tussen partities is.

Als de balans u niet goed lijkt, kunt u overwegen om het KEY-partitioneringsschema te gebruiken, waarbij het hash-algoritme is gebaseerd op een checksum-functie, wat betekent dat waarden meer "willekeurig" worden verspreid in vergelijking met het HASH-modulus-partitioneringsschema.




  1. Selecteer meest voorkomende waarde uit een veld in MySQL

  2. Hoe het totale aantal geretourneerde rijen opnemen in de resultatenset van de opdracht SELECT T-SQL?

  3. Hoofdletterongevoelige zoekopdrachten/query's

  4. MySQL SIN() Functie – Retourneer de sinus van een getal in MySQL