sql >> Databasteknik >  >> RDS >> Mysql

Har InnoDB statiska tabeller?

InnoDB har rader med fast bredd och det kan vara en fördel med att deklarera alla kolumner i en tabell som fast bredd. Den största fördelen är att alla "hål" på en sida kan återanvändas för valfri infogning, eftersom alla rader är lika långa. Detta gör utrymmesåteranvändningen något mer effektiv. Jag skulle dock inte försöka tvinga fast bredd för några strängar över några dussin byte, eftersom kostnaden för att lagra extra data per sida (och därmed färre rader per sida) snabbt skulle överväldiga alla besparingar/vinster du skulle få från mer effektiv återanvändning av utrymme.

Men att ha rader med fast bredd inte tillåta all optimering av radskanning (som det gör för MyISAM) överhuvudtaget. InnoDB:s radlagring är alltid sidbaserad och använder ett B+träd med dubbellänkade listor med sidor och enkellänkade poster inom en sida. Radtraversering använder alltid dessa strukturer och kan inte göras på något annat sätt.



  1. Node js (getConnection)

  2. Långsam enkel uppdateringsfråga på PostgreSQL-databas med 3 miljoner rader

  3. Flera ladda upp bilder till Mysql-databasen

  4. Avancerad SQL:CROSS APPLY och OUTER APPLY