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

Hvornår skal man bruge hvilken mysql-partitioneringsmodel

Det afhænger præcist af, hvilken slags præstationsproblem du har.

MySQL 5.1's partitionering giver dig kun mulighed for at partitionere den første bit af primærnøglen. Det betyder, at hvis du vil bruge en hvilken som helst nyttig form for partitionering, er det ofte ønskeligt at have en sammensat primærnøgle.

En af de mest almindelige use-cases er at udløbe gamle data, hvilket kan være meget dyrt i ikke-opdelte tilfælde. I så fald skal du få den primære nøgle til at starte med en dato/tid og en partition på det.

Så kan du udløbe rækker ved programmæssigt at droppe gamle partitioner.

Andre tilfælde er, hvor dine almindelige forespørgsler kan drage fordel af partitionsbeskæring.

Husk at du ikke kan løse ethvert ydelsesproblem med partitionering; det er ikke magi. For forespørgsler, der ikke har gavn af partitionsbeskæring, skal hver partition forespørges. MySQL gør ikke dette parallelt, så det er typisk lige så langsomt som at bruge en ikke-paritioneret tabel.

  1. Identificer præcis, hvad dine ydeevneproblemer er
  2. Beslut hvor meget forbedring der vil være nok til at rette dem
  3. Beslut hvor meget præstationsregression du kan tolerere i andre use-cases
  4. Test, test, test og test igen på dine produktionsstørrelsesdata på hardware i produktionskvalitet på forskellige forskellige opsætninger
  5. Gentag, indtil du er tilfreds.
  6. Udfør relevante funktionelle tests; frigive!


  1. MySQL undtagelseshåndteringsadgangsundtagelse håndteres

  2. Er SQL Server Unique Key også et indeks?

  3. MySQL - Gør et eksisterende felt unikt

  4. Indlejrede relationer med Sequelize