sql >> Database >  >> RDS >> Mysql

Heeft InnoDB statische tabellen?

InnoDB heeft rijen met een vaste breedte en er kan enig voordeel zijn om alle kolommen in een tabel als vaste breedte te declareren. Het belangrijkste voordeel is dat alle "gaten" in een pagina kunnen worden hergebruikt voor elke invoeging, aangezien alle rijen dezelfde lengte hebben. Dit maakt het hergebruik van ruimte wat efficiënter. Ik zou echter niet proberen een vaste breedte te forceren voor strings van meer dan een paar dozijn bytes, omdat de kosten van het opslaan van de extra gegevens per pagina (en dus minder rijen per pagina) de besparingen/winsten die je zou krijgen van meer efficiënt hergebruik van ruimte.

Rijen met een vaste breedte hebben echter niet enige optimalisatie van het scannen van rijen mogelijk maken (zoals voor MyISAM). De rijopslag van InnoDB is altijd paginagebaseerd en gebruikt een B+tree met dubbel gekoppelde lijsten met pagina's en enkelvoudig gekoppelde records binnen een pagina. Rijovergang maakt altijd gebruik van deze structuren en kan niet op een andere manier worden gedaan.



  1. Propel:kolommen selecteren uit gealiaste join-tabellen

  2. PostgreSQL-databases migreren van op locatie naar de cloud met AWS RDS

  3. Is het in MySQL-trigger mogelijk om een ​​gebruikersvariabele in te stellen met NEW.col en die te gebruiken in de updatequery?

  4. Hoe krijg ik de ID van meerdere ingevoegde rijen in MySQL?