Mysql
 sql >> Base de données >  >> RDS >> Mysql

InnoDB a-t-il des tables statiques ?

InnoDB a des lignes à largeur fixe et il peut être avantageux de déclarer toutes les colonnes d'une table comme étant à largeur fixe. Le principal avantage est que tous les "trous" d'une page peuvent être réutilisés pour n'importe quelle insertion, puisque toutes les lignes ont la même longueur. Cela rend la réutilisation de l'espace un peu plus efficace. Je n'essaierais pas de forcer une largeur fixe pour toutes les chaînes de plus de quelques dizaines d'octets, car le coût de stockage des données supplémentaires par page (et donc moins de lignes par page) submergerait rapidement les économies/gains que vous obtiendriez de plus réutilisation efficace de l'espace.

Cependant, avoir des lignes à largeur fixe pas permettre toute optimisation de l'analyse des lignes (comme c'est le cas pour MyISAM) que ce soit. Le stockage de lignes d'InnoDB est toujours basé sur des pages et utilise un arbre B + avec des listes de pages à double liaison et des enregistrements à liaison simple dans une page. Le parcours de ligne utilise toujours ces structures et ne peut pas être fait autrement.