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

Har InnoDB statiske tabeller?

InnoDB har rækker med fast bredde, og der kan være en fordel ved at erklære alle kolonner i en tabel som fast bredde. Den største fordel er, at alle "huller" i en side kan genbruges til enhver indsættelse, da alle rækker har samme længde. Dette gør genbrug af plads noget mere effektivt. Jeg ville dog ikke forsøge at tvinge fast bredde for nogen strenge over et par dusin bytes, da omkostningerne ved at gemme de ekstra data pr. side (og dermed færre rækker pr. side) hurtigt ville overvælde enhver besparelse/gevinst, du ville få ved mere effektiv genbrug af plads.

Men at have rækker med fast bredde ikke tillade enhver optimering af række-scanning (som det gør for MyISAM) overhovedet. InnoDBs rækkelager er altid sidebaseret og bruger et B+træ med dobbeltlinkede lister over sider og enkeltlinkede poster på en side. Rækkegennemgang bruger altid disse strukturer og kan ikke gøres på anden måde.



  1. Ikke butik opdateretAt med sequelize model

  2. Bruger online offline status - offline status problem

  3. Når du kører UPDATE ... datetime =NU(); vil alle opdaterede rækker have samme dato/tid?

  4. Hvordan forbedres ydeevnen af ​​underforespørgslen?