sql >> Database >  >> RDS >> Mysql

MySQL-prestaties met AUTO_INCREMENT op een PRIMAIRE SLEUTEL

Primaire sleutels worden vaak gebruikt als de volgorde waarin de gegevens daadwerkelijk worden opgeslagen. Als de primaire sleutel wordt verhoogd, worden de gegevens eenvoudig toegevoegd. Als de primaire sleutel willekeurig is, zou dat betekenen dat bestaande gegevens moeten worden verplaatst om de nieuwe rij in de juiste volgorde te krijgen. Een basisindex (niet-primaire sleutel) is doorgaans veel lichter van inhoud en kan sneller worden verplaatst met minder overhead.

Ik weet dat dit waar is voor andere DBMS's; Ik durf te veronderstellen dat MySQL in dit opzicht op dezelfde manier werkt.

UPDATE

Zoals aangegeven door @BillKarwin in onderstaande opmerkingen, zou deze theorie niet gelden voor MyISAM-tabellen. Als vervolgtheorie verwijs ik naar het antwoord van @KevinPostlewaite hieronder (dat hij sindsdien heeft verwijderd), dat het probleem het ontbreken van AUTO_INCREMENT op een PRIMAIRE SLEUTEL is - die uniek moet zijn. Met AUTO_INCREMENT is het gemakkelijker om te bepalen dat de waarden uniek zijn, omdat ze gegarandeerd incrementeel zijn. Met willekeurige waarden kan het enige tijd duren voordat de index daadwerkelijk wordt doorlopen om deze bepaling te maken.




  1. Kan ik toegang verlenen tot databases met een prefix en dan een jokerteken?

  2. upload een bestand naar een MySql DB met PHP

  3. Hoeveel vermeldingen zitten er in een knooppunt van B-Tree van een MySQL-index?

  4. Hoe uuid te gebruiken met het postgresql gist-indextype?