sql >> Database >  >> RDS >> Mysql

Wanneer welk mysql-partitioneringsmodel te gebruiken?

Het hangt er precies van af wat voor prestatieprobleem je hebt.

Met de partitionering van MySQL 5.1 kunt u alleen het eerste bit van de primaire sleutel partitioneren. Dit betekent dat als je een bruikbare vorm van partitionering wilt gebruiken, het vaak wenselijk is om een ​​samengestelde primaire sleutel te hebben.

Een van de meest voorkomende use-cases is voor het verlopen van oude gegevens, wat erg duur kan zijn in niet-gepartitioneerde gevallen. In dat geval zou je de primaire sleutel moeten laten beginnen met een datum/tijd en een partitie daarop.

Dan kun je rijen laten verlopen door programmatisch oude partities te verwijderen.

Andere gevallen zijn waar uw veelvoorkomende vragen kunnen profiteren van partitie opschonen.

Onthoud dat je niet elk prestatieprobleem met partitionering kunt oplossen; het is geen magie. Voor query's die niet profiteren van partitie opschonen, moet elke partitie worden opgevraagd. MySQL doet dit niet parallel, dus het is meestal net zo traag als het gebruik van een niet-gepartitioneerde tabel.

  1. Identificeer precies wat uw prestatieproblemen zijn
  2. Bepaal hoeveel verbetering genoeg zou zijn om ze op te lossen
  3. Bepaal hoeveel prestatieregressie je zou kunnen tolereren in andere gebruikssituaties
  4. Test, test, test en test opnieuw op uw productie-formaat gegevens op productiekwaliteit hardware op verschillende verschillende opstellingen
  5. Herhaal totdat je tevreden bent.
  6. Relevante functionele testen uitvoeren; los!


  1. django auth Gebruiker die e-mailveld afkapt

  2. PHP MySQL krijgt locaties in de straal van de locatie van de gebruiker van GPS

  3. mysqldump met --where clausule werkt niet

  4. Wat is het MAX-nummer als ik int(255) opslaat in MySQL?